Skip to main content

Full text of "Time Designs"

See other formats


. =" r er. 













' See a ee SES TENE iad : ats. 
5 . ; ke ae Wate A Johnson May/8?7 | s ‘ 
) La ga0 N. Margen Ave... . BULK RATE “= 
MARCH/APRIL a7 Orange City, FL 32763 U.S. POSTAGE 
‘Vol. 3 No. 3 oP PAD} NS 
(383.00 U.S. Funds Vreniris | 

o = — : ____DATED MATERIAL- TIME VALUE 
ae = = REQUESTED MATERIAL- PLEASE FORWARD] 

: AMERICA’S LARGEST TIMEX SINCLAIR MAGAZINE 








~ 


EXCLUSIVE 


eK. BINGHAr! 


= 


“2s NEL LIFE FOR THE 2xX*S1i--Tsiooon xxx 


SILICON MOUNTAIN COMPUTERS announces TRUE HIGH RESOLUTION SOFTWARE for the 2X81/TS1000. You read it riaht! Without any eypensive 
hardware add-ons, your computer can mow run software that even its designers never dreamed possible. Thanks to an amaziug 
discovery by Wilf Rigter, and innovative programming by Gregory Harder and Fred Nachbaur, you no longer have to suffer the “low 
res peste Multiple character sets, 256x192 graphics, 64-column screens, UDG's, even SPRITES are now available for your 
computer: 


NO computer modifications are required. If you have a ZX51, TS1000, or TS1500, with a 16K (or larger) RAM pack, plus an &K 


s 


tatic RAM board, you already have all it takes to run this remarkable software. Suitable static RAMs include the popular 


"Hunter" board, or similar designs (see SyncWare News vol. 4 no. 1 for one such project costing under $10). Alternately, 
consider our 8K "SCRAM" board (described below). 


All prices include shipping in USA and Canada. Foreign orders: please add $5 for air shipping. CDN$ accepted at par from 


Cc 
i 


"“ScRAM" NV BOARD 


° is 
With the loss of the "Hunter" board from the CUNGEON OF YMIR a ee | lin mM, ." ar’! as 
market, we Saw the need for an improved func- This D&D-style graphic adventure ; 
tional equivalent, at a lower price: This board [me ts the most challenging, 3 a mt um 
: complex an spectacular enter- 
works with ZX81/TS1000 or 151500, has on-board taiMeEne aa ¥tus ratte? wrteten ‘e FURTUEEEY igen hire avnnis 
battery back-up protection, and supports all of for the ZX81 family of compu- LL fh 
our high-res software with no modifications. It onic ae ge Poa os 20 TD * fini ‘Lh | be — 
. *ypes), spe * - = 
can be mapped in O-8K (ROM overlay),  8-16K [iitay gudictive, VERY challen. 2LMMMNNT All 
(normal operation), even 16-24K or 24-32K. ging, VERY impressive graphics. " | 
100% machine-code, yet takes up ‘ a, i ‘i 
‘ . 311 available memory in 16K. One “i 
Other features include: reviewer calla@tt: "Ssstap-soft- Ti) ie 
* DIP switch to deselect 2K blocks ware” and "a must have.” We know fin 
* Board enable switch that you'll agree. AOCTOORELE 
* Write-protect switch seeee NEW LOWER PRICE *#ee* = ni t Land 
* RESET switch easily installed (optional) PRICE: $19.95 including shipping 
* ee ee StdS25 S2sSs5 tse sess sists 
Z Very low power drain A King @inotayv 
Feed-through connector Hit= L4 [Exp-45 48 [Ce @ [tel | Sho | OrD> [ajO | ReaS 
* FULLY ASSEMBLED! Just plug it in. 
* Use with other machine-code software 
oe JS-"Re~2-JAN- t--4--$~$-—N~- R-FEB-t--f--S-_ 5--n--t-WAR-t--1--s- 
PRICE: $39.95 including shipping. +, 1957 1 2 331 2343 6 ate2 345 6 
| 4143$6?278 9 10; $ 918 11 12 13 if) 3 918 11 12 13 14! 
a 12 13 14 15 16 12415 16 17 18 19 28 21,15 16 17 18 19 28 21! 
= ee: ee = = ve ansa+ ~hceaee 125 PY vd = ; = hi 23 24 25 26 22 1135 ] 3 25 26 27 ag 
9 ee ee COME 6 TO.6U6ULEeCL EEC CEES This calendar/appointment book Sabet PERS oe Sree $-N==t2 N-t-4--s- 
Program demonstrates the power 3} 12345 6° 
Cone PAUSE LIST CLIT PAINT REVERSE POINT Locate you have using SRA Hi-Res Ex |S 6 2 $ 9 48 11118 11 12 13 14.15 16) 2 $8 9 19 41 12 135 
HOORESS BIRARY tended BASIC. Enter, update, de- 12 13 14 15 16 17 18)17 18 19 20 21 22 23314 15 16 17 18 19 20) 
oRae we Mera lete, list, print messages and 119 20 21 22 23 24 25 524 25 26 27 28 29 30521 22 23 24 25 26 27% 
CIRCLE #O QNCIRCLE Freminders for any day of any 326 27 28 29 30 333 123 29 38 . 
pte: WNRECT | year 1800-2099. Program struc- jS-~RP~t-JUL-t=-f--S= $--W--1-AUG-t--F--S1_$--W--t-SEP-t-- f--s- 
TRIANGLE ture will remind you of much la- 4 1 2 3 4} So ae RS 8; ise 3 4.88 
INVERT BINCONE KINDO HINDONL WIRCOUR eDC SPRITED SPRITEE | T9e" Tachines which shal) remain 143 2 ms -s g = aaiat = 7 3 a = asta mA a 4 e re " 
i nameless.... > : H 
SPRITEP SPRITEM SPRITES SETHOBE SAYE-¥ LOWOe-¥ SAFE-S Lene-5S geet si Fr 29 31 22 23 24 25123 24 25 26 27 28 29128 21 22 23 24 25 261 
b) BREBORY C. HARDER : -35 including shipping. §3¢ 22 23 29 30 31 +30 31 12? 28 29 30 H 
: aca *** SEE SPECIAL OFFER BELOW *** es. “RPpiP ery eS a ares 
FRED NACKBAUR $45 6 7 8 $1058 $18 111213145 6 2 8 $4811 12! 
' 2 13 14 15 16 17515 16 17 18 19 28 21313 14 15 16 17 18 19} 
{ 9 20 21 22 23 24522 23 24 25 26 27 28520 21 22 23 24 25 26! 
H 6 27 28 29 36 31529 30 $27 28 29 30 31 3 


anadian customers. Write for catalog of other available software. At SILICON MOUNTAIN COMPUTERS, the ZX81 family of computers 
s our ONLY specialty. Qur goal is to develop the most progressive software ever created for these machines. We feel that the 
software listed below propels these machines into mainstream computing; we think that you'll agree. 





$85 














































SRAM HI*RES EXTENDED BASIC is the flagship of 
our new line of software. With this remarkable 
package YOU can write high-resolution appli- 
cations... ENTIRELY IN BASIC! While using only 
4K of memory, SRAM HI*RES adds 38 new hi-resol- 
ution commands. If you know how to program in 
Sinclair BASIC, you will find SRAM HI*RES easy 
to learn and use. A revolutionary syntax system 
allows ANY variables or expressions to be used 
in your commands. No REMs to pass parameters! No 
POKEs: A single USR call is used for ALL com- 
mands! Most commands can be chained into MUL- 
TIPLE. STATEMENT LINES! We even included a fast 
(8.5x normal) set of tape routines! The most re- 
liable tape system ever written. Other features: 
* Three 32-column PRINT modes . 

Lower-case and new symbols 
64-column PRINT mode 
128 User-defined characters 
Scroll WINDOWS any direction... 

a pixel at a time: 






HIGH-RES @GHESS 
This program upgrades the poo- 
ular Psion “CHESS” program (as 
sold by Timex) to spectacular 
hi-res format. Included with the 
tape is an easy-to-follow info 
sheet detailing how to modify 
(and back-u0) the original pro- 
qram. No lonqer any need to oat 
along using a “real” chess 
board! 


PRICE: $9.95 including shipping. i 


**eee 





* Up to 32 TRUE sprites! Speed adjustable. SPECIAL OFFER 

* Invert windows or entire screen 

* Software-only video reverse If you purchase our "SCRAM" NVM board and SRAM 
Sin a HI*RES EXTENDED BASIC and mention this ad, 
ig et a ie you'll get a FREE copy of YEAR-AT-A-GLANCE. 


Offer good only until July 1, 1987. 


PRICE: $24.95 incl. complete manual & shipping 


The Peak of Quality... from SILICON MOUNTAIN COMPUTERS 
C-12, Mtn. Stn. Group Box, Nelson BC V1L 5P1, CANADA (604)352-1668 
























~~ 





=i 


The Editor’s Forum 


First, without sounding like a lot of hype, I would 
like to encourage as many of you that can make it, to 


so attend the Timex Sinclair Computer Fest in Indianapolis 


fthis coming May. Frank Davis and crew have spent an 
‘enormous amount of volunteer time and even personal in- 
vestment, to bring you the largest assemblage of TS 
vendors and enthusiasts ever seen. I'm hoping that we 
can show our appreciation by surpassing their an- 


ticipated attendance goal. For further details, please 
check out the news section in this issue. 
I have received a number of requests for info on 


where to get repair work done on Sinclair computers. 
This made me realize that TDM hasn't reported on this 
Since one of our early back issues. 

Currently, we know of three sources for repairs of 
the TS1000/TS1500/TS2068: Carver Technologies(Tim Carver 
is the service technician), 3832 Watterson Ave, Cin- 
Ccinnati, OH 45227, tel.(513) 271-5575; Timex Product 
Service Center, 7004 Murray St., Little Rock, AR 72203, 


tel.(501) 372-1111 [yep, they still provide "out-of- 
warranty" service at this time]; Sunset Electronics, 
2254 Taraval St., San Francisco, CA 94116, tel.(415) 


665-6161. 

For QL service, contact either A+ Computer Response 
(69-B Island St., Keene, NH 03431, tel. 603-357-1800): 
or Brice Road Pharmacy (1653 Brice Road, Reynoldsburg, 
OH 43068, tel. 614-861-3600). However, I recommend that 
you contact the dealer where you purchased the computer 
from first. 

For Spectrum repairs, we have no recommendation, 
other than consult the back pages of ZX COMPUTING, where 
several European repair. houses are listed. 

Another source of help for that faulty computer 
might be a new regular feature here in TIME DESIGNS (see 
elsewhere). It's called the "TS Communique", and is 
hosted by our own Joe Williamson. Joe, as you may know, 
was the former editor of SUM. He also studied elec- 
tronics and earned a degree from Florida State, and is 
currently employed as service technician for a video 
store. The TS Communique allows you the reader to send 


in questions about troubles you are having with your 
equipment (including monitors, printers, interfaces, 
storage devices, etc.). Answers will be printed in up- 
coming issues. 

In closing, I would like to do something that I've 
never done before in TDM. Let me explain. A couple of 
months ago, I was having one of those perfectly rotten 
days (you know, the ones where nothing goes right?). 
Then in the mail, came a letter which changed all that. 
It simply read as follows: 


Dear Mr. Woods, 

Please accept my renewal to your very excellent 
magazine. I am one of those carry-overs frgn SUM, that 
you took under your wing last summer. Because of your 
magazine, my interest in the TS2068 has really grown, 
and I just wanted to say "thank you". 

Respectfully Yours, 
Jim Preston 
Gainesville, Florida 


Because of this one note, the whole rest of my day 
had a different outlook. All of those nights I went 
without sleep to make a deadline, somehow seemed worth- 
while. If I could renew the interest in a powerful 
little orphan computer, then my original goals for ‘TDM 
had been met. 

Sadly, a few days ago I learned that Jim Preston 
had suddenly passed away from a heart attack at the age 
of 66. He had been a member of the Gainesville Sinclair- 
Timex Users Group for a couple of years. One of the 
members told me that Jim was "a heck of a guy. Had a 
great sense of humor...and would do just about anything 
for you. He was that kind of person". 

Although, I never met him personally, I was touched 
by that one note that came at just the right time. In 
this respect, I would like to dedicate our March/April 
1987 issue of TIME DESIGNS to the memory of Jim Preston. 

I think you would have really liked this issue Jim. 


Sincerely, 
Tim Woods 
Managing Editor 
Time Designs Magazine Co. 


Special Information for TDM Subscribers 


WILL YOU BE MOVING SOON? Or even if you change to a 
post office box, please let our office know. well in 
advance. We have found that the U.S. Postal Service will 
not reliably forward third class mail (like TDM) even if 
there was only a small change in the address (like an 
apartment number for example). To ensure that no issues 
will be lost, notify us a soon as you know your new 
address. 


WHEN TO RENEW? To determine what your 
date is, read the information in the upper right-hand 
corner of your shipping label (located on the front 
cover of this magazine). For an example: "Mar/87" means 
that the March/April '87 issue will be the last one you 
will receive until you) renew your subscription again: An 
early renewal is appreciated. We also send one reminder 
notice in case you forget. You can also use the form on 
page 43 to renew your subscription. 


expiration 


Editor: Tim Woods 





MAGAZINE 


FOR ALL TIMEX AND 
y= SINCLAIR COMPUTERS 


” TIME DESIGNS MAGAZINE CO. 
29722 Hult Rd. Colton, Oregon 97017 


(503) 824-2658 


CompuS@rve ID 71350, 3230 


MARCH/APRIL ’87 
Vol. 3 No. 3 


TIME DESIGNS MAGAZINE is published bi- 
monthly and is Copyright © 1986 by the Time 
Designs Magazine Company, Colton, Oregon 
97017. All rights reserved. 


Reproduction of this magazine in whole or in 
part by any means without written permission is 
prohibited by law 


“NOTICE: Contributors to TIME DESIGNS are independent 
of the TIME DESIGNS MAGAZINE CO., and opinions ex- 
pressed in the contents of the magazine are notnecessarily 
those of the management or its advertisers. Time Designs 
Magazine Co. willnot be heldliable for any damage or conse- 
quences resulting from instructions, assertions of fact, 
review of products or companies provided in the magazine's 
content.”’ 





Assistant Editor: Stephanie Woods 
Editorlal Assistant/Production: D.L. Woods 


Photography: 

(unless otherwise noted): Thomas Judd 
Printing by; Toad’! Litho Printing and Comp., 
Oregon City, Oregon 97045 


SUBSCRIPTIONS: $15 a year for six issues (US 
funds only). No extra charge to Canadian 
subscribers. All other countries please write for 
information on air mail rates. 


CUSTOMER SERVICE: Customer satisfaction is 
our goal. For subscription service problems 
please write or call TIME DESIGNS. 


CHANGE OF ADDRESS: Write or call to prevent 
delay of sevice, 








Editor: To "nxecap" a Letter that was printed in the Last 
(Jan/Feb '87) issue of TOM, from Vince Stimmel; help was 
requested on saving auto-run cassette programs to the 
A&J Microdrive. Mr. Stimmel reported that he received a 
number of responses and a phone call before his copy of 
the magazine arrived in the mail. Here are two NCS pPOnSeS 
that were sent in to us directly... 


Since we too have recently invested in the "poor 
folks" mass storage from A&J, we have a feeling of kin- 
ship. If you have the customized version of MSCRIPT, the 
"catalog" function can be a help in getting self- 


starting and machine code programs onto wafer. Load 
MSCRIPT; at the HOME menu, set "use" to cassette (just 
hit the "U" key). Then hit "Cc" for catalog. Play your 


program tape, and each program should be listed on the 
screen, along with memory addresses for all code or the 
auto-start line number in Basic programs. Now that you 
have some more information, see if you can break into 


the Basic and save it to wafer. Then save the indicated 
code at the indicated address and length. 
Branson Wilcox 
Cawker City, KS 
Thank you for publishing my program "Character 


ANALYSIS" in the JAN/FEB '87 issue. I hope your readers 
will enjoy and find some use for the program. I will be 
happy to answer any of their questions regarding it. I 
am also enclosing a subroutine for SAVING to A&J and/or 
tape, to answer the question your reader, Vince Stimmel 
of Hendersonville, NC, asks. It includes error trapping, 
verifying, and autostart. 


William C. Andrews, M.D. 
San Anselmo, CA 


TO SAVE 
9000 ON ERR RESET : BORDER 6: @———— GOTO 9999 
PAPER 6: CLS : PRINT AT 5,123 P 
AFER 13 INK 93 BRIGHT 13" SAVE? 
"SAT 10,7; PAPER 2;" 1 "3; PAPER 
6; BRIGHT. @;" ON MICROWAFER ";AT 
12,13;" OR "s;AT 14,7; PAPER 2; 
BRIGHT 13" 2"; PAPER 6; BRIGHT 
®;" TAPE CASSETTE ": PAUSE @ 
9918 LET Z$=INKEY$: IF Z$="2" TH 
EN GO TO 994@ 
9020 BORDER 1: PAPER 1: CLS : PR 
INT AT 19,18; PAPER 2; INK 93; FL 
ASH 1;" RECORDING " 
9930 SAVE "@1, TITLE" LINE 9100: 
GO TO 919@ 
9040 ON ERR GO TO 909@: BORDER 
®: PAPER @: CLS : PRINT AT 11,10 
; PAPER 2; INK 9; FLASH 1;" RECO 
RDING " 
9950 SAVE "TITLE" LINE 9196 
9968 BORDER 1: PAPER 1: CLS : PR 
INT INK 7sAT 9,2; "REWIND TAPE-- 
PRESS ANY KEY TO"?**TAB 5; "VERIF 
Y OR BREAK TO STOR" 
9070 PAUSE @: CLS : PRINT AT 11, 
14; INK 6; FLASH 1;" VERIFYING " 
9989 INK 1: VERIFY "": PRINT AT 
11,6; PAFER 2: INK 9;" RECORDING 
IS O.K. “: BEEP .5,1@: PAUSE 20 
G: INK @: GO TO 9199 
9098 CLS : PRINT PAPER 2; INK 9 
; FLASH 1;AT 1@,1@;" TAPE ERROR 
": PAUSE 2a@ 
919 ON ERR RESET : CLS : GO TO 


be in sequence for its 
position on the wafer. 


After the , name of 
program (7 char. max.). 











Number after LINE is 

the next sequence of 

program (could be the 
auto-start). 


For tape--no @. Title 


RROR TRAP 


=~ 


The number after @ must 


limited to 10 char. max. 


Autostart of program 


= 2 





wor 


I am writing to say thank you for doing a great job 
with TDM. I especially appreciate the Machine Code pro- 
grams, utilities for the TS 2068. Thank you also for 
publishing the Source Code for Michael E. Carver's 
"BASIC2text" (Nov/DEC '86). I really enjoyed that one. I 
learn so much from labeled, notated source code about 
the 2068 and the assembler language itself. Thank you 
for doing this, hope to see more. 

Syd Wyncoop's column has been the best presentation 
of Beginning Z80 Machine Code I've ever seen. Now that 
the price has come down on Softsync's programs (now 
available from Zebra Systems): ZEUS ASSEMBLER, ZEUS 
MONITOR/DISASSEMBLER..well, they are great programs! 
Here is a tip for the Assembler, that some users may 
appreciate. The instructions that are included with 
ZEUS ASSEMBLER do not explain how to get a minus dis- 
placement value. For example: you would like to write a 
program or utility that resides at address 57344 (right 
at the start of the assembler), and you would like to 
have your assembled code at address 40000. You would use 
the ORGinate address 57344. Then to calculate the 
DISPlacement: 65536 - ORG(address) + assembled code 
(address) = DISPlacement or 65536 - 57344 + 40000 = DISP 
48192. When satisfied with your code, SAVE "name"CODE 
40000, length. To test it out, LOAD "name" CODE 57344 or 
whatever was used for the ORGinate address. Thanks again 
for a great magazine! 


Richard Hurd 
Warrenton, OR 


em 


Editor: Thanks for your continued support, 
accept both criticism and praise. 

Syd Wyncoop repkies: I have an easier way f0A negative 
displacements in ZEUS. The problem is that my way better 
Lends itself to use in hex. I will usually assemble my 
code to address #C000 and then add an offset of #2000 to 
akk Labels. Using these numbers, the Machine Code would 
be assembled at 49152 and nun from 57344. These numbers 
ane not as Strange as they would {inst appear. They rep- 
resent page breaks between &k sections of memory, but 
this 48 only obvious when working in hex. The "#" in 
front of the above numbers is the notation used by ZEUS 
to denote a hex number. Ads Long as you ane running your 
code from any 256 byte page break, this technique works 
very well and is easy to use, if you use and understand 
hexidecimak numbers. Thanks for your comments. 


Richard. 


Dear Tim, 

You mentioned in the Jan/Feb '87 issue that I would 
soon complete debugging the TS2068 ROM software. I would 
have said "debugging is an on going project" and the 
corrections that are completed are ready for release at 
any time. I am working on both the TS1000 and TS2068 
software. I have the TS1000 (and TS1500) on 16k EPROM. 
With the price drop on 32k static RAMs we can now have a 
four chip computer with 32k bytes internal RAM and 8k 
space for special ROM code. 

The latest bugs corrected for the TS2068 include 
both the HOME ROM and extension ROM software. ‘These 
corrections allow a BASIC AROS to operate in the 
advanced video modes. With these corrections 
USR (number) also works in the advanced video modes 


Bob Orrfelt 
3436 Bay Rd. 
Redwood City, CA 94063 


the PRINZ, 


-  % 


I have not been able to figure out how to print a 
copy of a screen display on my QL Printer. I have tried 
to interpret the information provided by the QL Users 
Guide, the QL Printer Manual, and Jan Jones' book "QL 
SuperBASIC", all to no avail. After spending around $800 
for my QL setup, I feel cheated that the capability is 
not specifically addressed in the manuals, if in fact 
the capability exists. Must I purchase a program in 
order to do this, such as a desktop publishing program? 
Your advice will be much appreciated. 


Doug McRoy 
Laurel, MD 


Mike de Sosa answers: The following short program should 
solve your problem. This and mone useful programs Like 
At wihk be found in my new book TAKING THE QUANTUM LEAP: 
THE LAST WORD ON THE SINCLAIR QL, to be published by 
TIME DESIGNS in Aprik. Always use PAPER 0 (bfack) when 
preparing a serneen to dump, otherwise you'keR wear out 


your printer cartridge ribbon in a hurry. To make sure 
you capture all of your screen design, Leave about 5 
character Spaces and 1 Line Space blank on the top, 


bottom, and sides of your screen design. 


Save the program on your QL-BG (Easel) backup cartridge. 
Run the program on MDV1. Key and enter "dscreen" to get 
a suitable window for your design. Make your screen 
design. Turn your printer on. Key and enter "dump" to 
copy your screen on your printer. 

If you want to SAVE your. screen design, use: 

SBYTES MDV2_anyname, 131072, 32768 

To reload your design, use: 

LBYTES MDV2_anyname, 131072 


1 REMark Gprint., dung 

2 a=RESPRC4000) 

3 LEYTES mdvyl ogprint prt, 

4 OPEN NEW #237 iiedvl d&ode 

5 PRINT #23,4 

& CLOSE #2 

7 DEFIne FPROCedure DUMF 

OPEN #3, mcivl deode 

9 INFUT #2,a 

(‘owe eC : ‘ 

.) ee 4 0.6 00-5 ,0,0,0,0,0 
12 END DEFinge DUPF 2 

13 DEFine® FPROCedure DScreen 

14 WINDOW Sif, #56,0,0_ 

15 PAFER Of TNE 7! écs oe 
16 PAPER _ #2,0:;INK #2,4: CLS #2 
17 END DEFine DiScreen 


Build this SUPER SIMPLE MODEM by Joe Williamson 


With the popularity of telecommunicating using TS 
computers, I thought it was about time for a _ simple, 
easy to build modem to appear on the scene. Using the 
circuit shown connected to the Mic jack with the program 
listed, you too can enjoy telecommunicating over your 
telephone line. WARNING! There may be rules and regu- 
lations governing connections made to telephone lines in 
your area. Check first. 

The Circuit shown can be made from parts that are 
available locally, and it uses the Mic jack as the I/O 
port. The transformer matches the impedance of the phone 
line to the impedance of the computer and provides iso- 
lation. The switch allows you to place the circuit "on 
hook" or "off hook". 

The program must be entered exactly as_ shown, 
particularly the REM statement which contains the code 
required for proper operation. The BEEP command is used 
for the different tones. The program is bare minimum for 
printing to the screen and keyboard entry. Because of 
this, you should load in the program first and become 
familiar with its operation BEFORE attempting the hard- 
ware portion. The USR calls are primarily for keeping 
track of what is printed where on the screen. 

After typing in the program, save it before running 
so you won't have to type it in again if the program 
crashes. Once this is done, enter RUN and you should be 
greeted with the message: "Super Simple Modem Ver. 1.1 
Ready". With a flashing cursor here on the next line 
awaiting keyboard or external entry. Press any key to 
start. 

To go online with some of the different modem 
services available, turn the switch to the off position 
and connect to the phone lines and plug into the Mic 
jack as shown. To dial, use a standard phone and dial up 
a modem service. As soon as they answer, turn on the 
switch and hang up the phone. You should be online with 
who you called. 

The simplicity and ease of use of this program will 
award you great pleasures in use. Try it. Show it to 
your friends. Enter the world of telecommunicating 
today. What can you lose? 


Ow/oFF S with 






To Phone Li “NES 


TS2068 Modem Program 


1 REM RTODQ-RHLOKD-LNCDL-UDQ- 

O-OQD@CX@OQHKENNKR <)>xx 

10 BORDER 0: POKE 23693,7: CLS 

: RANDOMIZE USR 26757 

20 LET L=25: LET P=26715: LET 
C=IN 244 

30 DIM A$(L+i) 

40 GO SUB 1000: PRINT ’A$ 

50 LET P=P+L+1: LET L=4 

55 RANDOMIZE USR 26757: DIM A&% 
(L+1) 

60 GO SUB 1000: PRINT ’’A$ 

70 PRINT ’ FLASH 13" * 

80 PAUSE 0: PRINT AT 6,0; FLAS 
H-0;= > 

90 LET P=P+L+1: LET L=4: DIM A 
$(L+1): GO SUB 1000: LET Q=14: 
LET S=.75: LET C=C+4: GO SUB 40 
00 

100 LET P=P+L+1i: LET L=5: DIM A 
$(L+1): GO SUB 1000: LET Q=21: 
LET S=.7: LET C=C-2: GO SUB 400 
.¢) 

150 BEEP .2,20: BEEP .2,5 


160 BEEP .2,20: BEEP .2,5 

200 PAUSE 0: RANDOMIZE USR 2675 
8 

999 STOP 


1000 FOR N=0O TO L: LET A$(N+1)=C 
HR$ (CPEEK (P+N))+1) 

1020 NEXT N 

1050 RETURN 

3999 STOP 

4000 LET A=LEN A$ 

4025 PRINT AT 21,03 INK O;a$ 
4030 FOR f=0 TO 8xa-1: FOR n=0 T 
O 7: IF POINT (f,n)=0 THEN GO 
TO 4055 

4050 PRINT AT Q-N,FxS; INK C3" " 


4055 NEXT N: NEXT F 
4060 RETURN 


Modem Circuit 





Redio Transformer 





NEW PRODUCTS 
For TS2068 and SPECTRUM 


VERSION 1.1 


¢ Pull-Down Menus e Auto-Speed Control © Includes Spectrum & TS2068 Versions 
¢ Several Brushes © Magnify & Reduce e Supports Microdrives and Kempston 
e Spray © Rotate & Mirror Joystick 

© Auto-Fill ® Full Attribute Control © Includes GALLERY, the slide 

* Zoom * Fully Elastic Shapes including Circle, show/animator 

* Undo Box, Triangle, Ray and Line ¢ 5 Samples of Artwork 

© Several Text Fonts ¢ Fast Ellipse and Arc e Excellent Manual 


¢ Cut & Paste Windows 


Unshackle your creativity with ... ARTWORX!! 
ARTWORX V1.1 - $19.95 U.S. plus $3.00 S & H 


REVOLUTIONARY NEW BASIC COMPILER... 


The dream of every BASIC programmer has now been realized! 


* TIMACHINE will turn your BASIC * Handles all BASIC except I/O 
into super-fast machine code, * Includes an excellent manual and 
running up to 200 times faster! 4 demonstration programs 

* Handles floating point operations * Compiles up to 27K in seconds 
like SIN, COS, TAN * Includes Spectrum & 2068 versions 


Super-Charge your BASIC programs with... TIMACHINE! 


TIMACHINE — $19.95 U.S. Plus $3.00S & H 


A unique combination of planning aids, decision tools, and utilities. 
* Scheduler/Planner * Biorhythms 
* Notepad * Perpetual Calendar 
* Telephone Book * International Time Zones 
* Programmable Calculator * Superb Manual 
* Decision Factoring * Includes Spectrum & TS2068 
* Real Time Clock Versions 

* Supports Microdrives 


A TIMELY ADDITION TO YOUR SOFTWARE LIBRARY... THE WORX! 


— $19.95 U.S. Plus $3.00S & H 








Novelsoft 


A FORMAT FOR THE FUTURE 





106 Seventh Street, Toronto, Ontario, Canada M8V 3B4 ¢ TEL. (416)259-8682 © CompuServe 70416, 1435 





TS Communique 


By Joe Williamson 


A forum for people having problems with their 
1500 and 2068. If you would like to ask a 
send it to: 


1000, 
question, 


TS Comunique 
c/o Time Designs Magazine Co. 
29722 Hult Road 
Colton, OR 97017 


I have a Panasonic KX-P1091 printer that I use 
with MSCRIPT on my 2068. I cannot print in 
italics, pica, elite, or proportional (Cany multi- 
byte control codes); I have used various symbols 
(comma, “", -, etc.), but no luck. Underline, bold, 
and double width print work well, but nothing else. 

This-really, tsn’t.a “big thing"s shout it. just 
bothers me that I can’t use these functions. Any 
help you can give me would really be appreciated. 


Jack Van Nest 
San Diego, CA 


Dear Jack, 


You must define a code key for each part of the 
multi-byte control code. For example, to define for 
italics print (27+52 turns italics on and 27+53 
turns italics off), define the code Keys as_ follows 
in your first line of text: >#0=27,#1=52,#2=53\ 

When you are ready to insert them into your 
text, use the function G to add @0@1 to where you 


want italics to start and @0@2 where you want it to 
end. -Joe 


I am using a Panasonic CT-160 composite color 
monitor and cartridge software. The color display is 
excellent from my "main" 2068 computer. The display 
from my “backup” 2068 is also good while using a TV, 
but no color from the monitor output. 

Was this a common factory problem, and if so, is 
there a repair that can be made at home without 
sending the unit through the mail? 


John Buckmaster 
Maspeth, NY 


Dear John, 


Yes to both questions. The video from the 2068 
is not really up to standards. The color output 
seems to deviate the most. Your TV probably is a bit 
more tolerant of these signals and will work with 
your backup 2068. To help correct the problem, You 
must open up your 2068. Make sure that the power is 
off and be careful! 

Pop-off the metal cover near the TV output 
connector and turn the little adjustment inside with 
a small screwdriver until color appears on _ your 
monitor. Be sure and check all the colors to make 
sure it is stable for all colors. The three 
adjustments around the speakers also control the 
display. Adjust VR1i for best jitter free picture. If 
there is a high-low input impedance switch on your 
monitor, place it in the “high” position for best 
operation. VR2 and VR3 control the hue of the 
colors. VR2 brings out the blues and VR3 brings out 
the reds. With the tint control on the monitor in 
the center position, adjust VR2 and VR3 for best hue 
of yellow, cyan, and magenta. -Joe 


Do you Know if anyone has a printer’ interface 
for the 2068 to connect to a Okidata 10 or 20? 

I understand the interface plugs into the 
printer and is available for the Commodore 64 and 
IBM PC. Perhaps one could be modified? 

I’m told this printer will make color’ trans- 
parencies or with no ribbon, print on thermal paper. 


Nathan Willis 
Orange, TX 





Dear Nathan, 

Your best bet would be to go with the IBM type 
interface and a serial (most likely it’s serial) 
printer interface for the 2068. You should be able 
to access all of it’s capabilities with the driver 
software for the interface. A serial printer 
interface should be able to be found from one of 
TDM’s advertisers. If anyone is familiar with this 


printer being driven by the 2068, drop us a line and 
let us Know. -Joe 


I have a 2068 with an Aerco parallel printer 
interface connected to a Smith-Corona TP-II daisy 
wheel printer. I am using MSCRIPT with it but unfor- 
tunately, I have a “bug” that no one else I Know has 
run into. 

It seems that randomly it glitches 
printout. It occasionally forgets to 
carriage, or it will leave out a letter, add an 
extra letter, indent when it shouldn’t, or not 
indent when the main text is all indented. The 
result is that I still frequently find myself doing 
“cut and paste”. 

I have no way of determining if it is the 
program, the interface or the printer. I know it is 
not the computer because I own two and I _ have 
interchanged them with no improvement. I have just 
recently ordered a new Aerco interface for my second 
system so I may soon eliminate that item. 

Is it possible that my printer has a quirk in 
it?! Has anyone else out there encountered this sort 
of frustration with this program? I think that 
MSCRIPT is great but this “glitch” is most 
aggravating. 


during a 
advance’ the 


Mel Routt 
Clearwater, FL 


Dear Mel, 

Because the “glitch” is so random, it is hard to 
tell exactly where the problem is coming from but I 
would suspect the interface and wiring first. Make 
sure that all connections are clean and tightly 
fastened. If you have access to an oscilloscope or a 
logic probe, you can check the data coming out of 
the cable and work back into the interface making 
sure that you get good logic levels swinging for 
less than .5 volts to more than 4.5 volts as data is 
fed out the cable. 

Try flexing the cable while printing to see if 
the problem exists there. If there is any type of 
buffer built into the printer, it may take awhile 
for the results of flexing the cable to appear on 
the paper. Good luck! -Joe 


UNLEASH THE POWER OF EXTENDED 
COLOR MODE ON YOUR T/S 2068!! 


EXTENDED PAINT gives you eight times the 
normal color resolution. Over 25 unique 
functions. Joystick control, menu-driven 
Extensive printer support, including hires 
greyscale screen dumps to T/S 2040 and Epson 


compatibles, as well as FULL COLOR hires 
dumps to Canon color ink-jet and compatibles. 
Supports AERCO Centronics interface. 
Cassette, with 24 page manual. $19.95 pp. 
from: 

Dave Franson 

3534A E. Squire Ave. 

Cudahy, WI 53110 














Two New Sinclair Computers Announced. 
Sir Clive’s Z88 and Spectrum +3. 





Desktop Publishing 
for the TS2068. 


Desktop publishing software and hardware packages 


have taken the personal computer market by storm. By 
combining’a powerful text editor with a graphics de- 
velopment system, the user can produce publications and 
documents for small business applications, with pro- 
fessional results. Generally, when purchasing one of the 
commercial desktop packages along with a quality laser 
printer...the down payment alone could put you into 
major debt. 

Enter Sinclair computers. Already the QL has a 
budget-priced desktop program called FRONT PAGE. Now the 
TS2068 joins the ranks with not one program, but two 
separate offerings. 

PIXEL PRINT Desktop Publisher is available for 
$19.95 ppd., from Lemke Software Development, 2144 White 
Oak, Wichita, KS 67207. Supports the Tasman, Aerco and 
A&J printer interfaces. 

The TIMEX 2068 DESKTOP PUBLISHER is available for 
$19.95 + $1.25 for postage and handling, from Charles 
Stelding, 1415 South Baxter, Tyler, TX 75701. 


For several years now, news of a _ battery-powered 
"lap computer", code-named PANDORA, was reportedly being 
developed by Sir Clive Sinclair and his engineering 
staff. In recent months, Sir Clive himself, talked ex- 
tensively about the proposed portable microcomputer. 

Sharp's Inc. of Mechanicsville, Virginia, reported 
to TDM in mid-February that the long awaited portable 
had been unveiled at a British computer show. The new 
machine, all decked-out in traditional black, signifies 
a comeback for Clive Sinclair, and is appropriately 
named the "Z88". 

The new Z88 is produced by the Cambridge Computer 
Company, a subsidary of Sinclair Research. Actual manu- 
facturer of the computer is Thorn EMI. Not surprising, 
the Z88 will be initially sold by mail order, for about 
$300 (equivalent U.S. dollars), with an estimated pro- 
duction capacity of 10,000 units per month. At a later 
date, it will be sold through retail stores. 

The portable Z88 does not have some of the features 
originally proposed by Sinclair, such as use of flat 
screen television technology, Microdrives, or CP/M. 
Instead, it uses a new 8 line by 80 column LCD display 
designed by Epson. The internal processor is a 2Z80, 
coupled with on-board 32k RAM. Data and software is 
stored on battery-backed EPROM cartridges. RAM is ex- 
pandable to 128k via an optional cartridge. Due to the 
new wafer scale integration being developed by Sinclair, 
additional RAM upgrades may be available in the future —~ 

Another feature of the new computer is IBM PC fi: 

compatibility. With an optional software disk for a Pvc 
and a cable, the Z88 can upload and download files from 
an IBM. 
The whole unit with four AA batteries weighs less 
than two pounds, and measures 11.5 inches by 8.5 inches. 
The full travel keyboard is specially made from silicon, 
and is said to be totally quiet in use. 

Also built-into the Z88 are software programs 
written by Protechnic of Cambridge, including a word 
processor a database, a spreadsheet, and some utilities. 
Further software development from third party houses is 
highly encouraged by Sinclair. 

In further news, Amstrad announced that they will 
be releasing a 128k Spectrum model that will have a 3" 
disk drive built in, as opposed to the cassette tape 
recorder found on the Sinclair Spectrum Plus 2. The 3" 
disk is the general format of choice in the Amstrad 
line. The DOS for the Plus 3, will be a customized 
version of Amsdos. No CP/M compatibility has been 
announced for the Plus 3, 


Largest Timex Sinclair Computer Fest 
gears up...jJust weeks away! 


An estimated 1,000 Timex. and Sinclair computer 
users will converge on Indianapolis, Indiana on Saturday 
May 2nd and Sunday, May 3rd. Attendees will be coming 
from all over the U.S. and Canada, to participate in the 
Second Annual Mid-West Timex Sinclair Computer Fest. 
The event will be housed at the Holiday Inn-North (just 
off North I-465 at 3850 Depauw Blvd.). The gates open 
each day at 9a.m., and tickets can be purchased at the 
door for $6 (individual) or $9 (for a family). 


A banquet on Friday evening for dealers and ex- 
hibitors will kick off the festivities. A variety of 
activities are planned for any interest or skill level. 


Guest speakers will be giving mini-workshops on suc’™™, 


subjects as "Graphics and CAD programs", "Using Yo. 
QL", "Machine Code Basics", "Dot Matrix Printers", ana 
"MIDI, Computer Music and Sinclair PC's". Valuable door 
prizes will be given away hourly, such as new computers, 
software and books. 








=, 


Almost every Timex Sinclair vendor will be there, 
with booths spread over more than 5,000 square feet. 
Many of these dealers and services have contacted TDM to 
report that they will be displaying some 
before" equipment as well as offering substantial Fest 
price discounts. 
¢ Here is an updated list of participating Timex 
,inclair vendors and services: 

Sharp's Inc. Novelsoft 

Variety Sales Foote Software 

Knighted Computers The WJDJUP Co. 

zebra Systems Inc. A+ Computer Response 
Time Designs Magazine Co. Kurt Casby/E. Arthur Brown 
CEM. JRC Software 

Brice Road Pharmacy Heath Software 

RMG Enterprises The John Oliger Co. 
Quantum Computing Byte Power 

Thomas B Woods/Syncware News Beaver Computer Products 
Vernon Tidwell Herb Bowers (Abba Soft) 


SiriusWare Haltronics 
Curry Computer Markel Enterprises 
Aerco Sinclair Information Network 


Russell Electronics Lemke Software Development 


More New 





LPRH RSH TSE esas Ke 


PS euyuRA 8206 


A TS1000 CLONE??? Yes sir, and several TDM readers 
have bought one, after seeing advertisements in Computer 
Shopper and other magazines. The PC8300 was designed and 
manufactured by Unisonic in Hong Kong during the heyday 
of the TS1000/ZX81. Although it is similar to the Timex 
Sinclair, it does offer some improvements like a pro- 
grammable sound chip (plus a loudspeaker), a joystick 
port, a monitor output, a chicklet-style keyboard, and 
an improved tape loading circuit. The PC8300 will accept 
the TS2040 printer and the TS1016 Rampack...and most 
(but not all) TS1000 software will load in. The clone is 
priced to sell at $29.95 + $5.99 for UPS ship, from 
American Design Components, 62 Joseph St., Moonachie, NJ 
07074, tel.(800) 524-0809 or (201) 939-2710. 

John Mathewson, 1852 Appleford St., Gloucester, 
Ontario, Canada KlJ 6T4, has developed an external key- 
board interface board that plugs into the TS2068's 
cartridge port, and allows both the computer's keyboard 
and the external keyboard to operate at the same time. 
No modifications to the computer required. Price for the 
interface card is $39.95 (U.S.); for the interface card 
plus an external keyboard system (in wood cabinent) is 
$69.95; also available is an interface and external key- 
board system for the TS1000/Zx8l--write for details. 

The TS2068 version of SPECTERM 64 is completed and 
currently available for $30 + $2 for postage, from G&C 
Computer Products, PO Box 2186, Inglewood, CA 90305, 
tel. (213) 759-7406. 

The Spectrum option for the Timex/Zebra FDD disk 
system is now available for $60 from Zebra Systems Inc., 


(78-06 Jamaica Ave., Woodhaven, NY 11421, tel.(718) 296- 


2385. Call or write for special ordering instructions. 
Also available for the FDD from Zebra is the "Software 
Development Technical Manual" for $20. 





"never-seen— 


MIDWEST 
Ptimex @ a! a 
COMPUTER 
FEST 


Indianapolis 


TO 


NORTH 








PRO YONG 










Harcourt Road 
| ToUS. 31 
§ 1.9 miles_. 






15 MILES 








West 65th Street 


Booths will also be sponsored by TS User Groups from 
Indiana, Wisconsin, Ohio, Kentucky, New Jersey, New 
York, and Michigan. 

For further information and details, write or call: 
Paul Holmgren (Executive Director), 5231 Wilton Wood 
Ct., Indianapolis, IN 46254, tel.(317) 291-6002; or 
Frank Davis, 513 E. Main St., Peru, IN 46970, tel.(317) 
473-8031. 


Items... 


A new version of the Larken disk drive interface is 
ready now. The system for the 2068 and Spectrum consists 
of an interface board for $45 (U.S.), and the LKDOS/EX- 
BAS Cartridge (which contains all of the commands for 
the system) for $60. The user supplys the floppy disc 
drive(s). Some new features include a "snap shot" save 
routine and 10 new Extended Basic commands. A 256k RAM 
Disk for the TS2068 will be available soon. Write to: 
Larken Electronics, RR#2 Navan, Ontario, Canada K4B 1H9. 

The DISCIPLE is a new disk drive interface for the 
Spectrum. Along with the disk feature, it also has a 
"snap shot" save button, a Centronics printer interface, 
dual joystick ports, and a networking system similar to 
the Interface One. All of this comes in one small box 
for £89.95. For further information, write to: Rockfort 
Products, 81 Church Road, London, England NwW4 4DP. 

Joe Newman of Variety Sales (325 West Jersey Street 
#2D, Elizabeth, NJ 07202, tel. 201-527-0535) announced 
that he would be willing to display software or hardware 
for any manufacturer or dealer that will not be able to 
attend the Mid-West Computer Fest. Write or call for 
details. 

Sharp's Inc. (Rt 10 Box 459, Mechanicsville, VA 
23111) reported to TDM that a new ROM is available for 
the QL, that replaces the existing two ROMS inside the 
computer. Several advantages are possible, including 
reduced heat build up and crashes. Also, other programs 
can be added to the new ROM such as I.C.E. or Toolkit II 
or customized combinations can be ordered. The new ROM 
is priced at $39.95. 

Two new software packages for the QL have been re- 
leased by Meta Media Productions, 726 West 17th Street, 
Vancouver, B.C., Canada V5Z 1T9. BOPPERS is a board type 
game, and FRACTAL is a mathematically based graphics 
generating program. 

The Crocket PAYROLL professional business software 
package is now available from Kamrec Systems, 51267 E. 
Village Bldg.17, Apt.205, New Baltimore, MI 48047. 
Write for information on this and other QL programs. 

Version 3.5 of Qflash's RAM-disk and toolkit soft- 
ware will be upgraded shortly to Version 4. It gives 
RESET128 and COMPARE aS SuperBASIC extensions, and other 
features. The software can be supplied on Microdrive 
cartridges, an EPROM, or an EPROM for the Sandy Super- 
QBoard. For prices and further information, write to: 
Uwe Fischer, Post Box 102121, D-2000 Hamburg l. 





-. 

















ALSO AVAILABLE FOR THE T/S 2068 


ZX-TEXT 





ZX—TEXT 


COPYRIGHT (c) 1 


963 
ALBERT F. RODRIGUEZ 





SELECT AN OPTION 


»-WRITE 
»REAC /EDIT 
»PRINT 


“AMNSWEP BY ENTERING A NUMBER" 


A word processor is to a computer user 
what a typewriter is to a typist, except that the 
former has more advantages than the latter. 
ZX-Text can operate in 16-64K RAM providing 
from 1300 to 6500 words per document. It 
features 6 different options: write, read, edit, 
print, save and clear text. Text is written on a 
per-line basis with quick speed and with 
horizontal back-space and delete capabilities 
being available. You can also access the 
editor directly from write mode and vice-versa. 
Text can be proof-read on a per-line basis 
allowing for enough time to determine if any 
editing is needed. The text editor allows a line 
of text to be deleted, inserted, replaced and 
listed for editing. You may also change a word 
or expression within a line, stop or start text 
while it is scrolling up the screen, begin 
reading text from the first line of the file, re- 
enter write mode from the editor, return to the 
main-menu or create a window so that you 
can read-edit two files simultaneously. The 
print option takes text displayed in 30-column 
format on the screen and outputs to either the 
ZX/TS printer. (With Memotech’'s Centronics 
Parallel Interface 80-column and lower/ 
higher - case output is possible.) Files may 
be saved on tape cassette with the use of 
one single command, or by the same token they 
can be erased from memory / storage so that 
the full capacity of the program can be used 
for other purposes such as composing letters, 
reports, articles, memos, standard forms, 
instructions, ads, graphs, telephone 
directory, lists of customers, members, 
friends...etc. Also copies of files are always 
less expensive and easier to run than using a 
photocopier. Other advantages are savings in 
time, paper, ink, correcting mistakes and 
adding afterthoughts more efficiently than 
doing them through either handwriting or 
using a typewriter. 


$16.95 
















POWERFUL AND INEXPENSIVE BUSINESS SOFTWARE 
FOR ZX81, T/S1000 and T/S1500 COMPUTERS 


ZX-CALC 





(c) eta is RODRIQUEZ 

HEH HHHHREBE #* 

2 1 
BUDGET 





1 
2 

3 ERE eeERE eee 

4 IAN FEB 

hy RENT 320 308 

‘] FRNTR 275 235 

fm 8 =6DECOR 325 125 

i 6 ELECTY 112 418 

9 TELPHN 55 7s 

it) §=<NoRY 35 25 

ik) = FOOD 125 116 

[M4 MEOCN 20 as 

ik} INSRC 441 441 

iyo CLTHS 165 215 

15 es ee 35 35 

TRARHREEEREAE HERE ESR ESRARERE EES 


ele LeEcT OF ale 
me ENTER/ERASE [3 <ICALCULATE 
* Bais ’ @ CLEAR 


An electronic spreadsheet calculator is the 
fundamental basic tool for summarising, reporting 
and analyzing in matrix form any accounting, 
mathematical or scientific manipulation of num- 
bers. ZX-Calc operates in 32-64K RAM and affords 
a maximum of 3360 characters / spreadsheet. The 
entire matrix consists of 15 columns (letters A-O) 
and 30 rows (numbers 1-30) with 8 characters / 
cell. Unlike other popular ESCs, ZX-Calc uses in 
calculations and within cells all 14 mathfunctions 
on the ZX-81/TS1000. It offers a unique *SUM 
function that totals one or more rows/columns 
simultaneously. Parenthesis can be used within 
equations. There is no fixed limit on how many 
equations may be entered. Formulas may be 
stored in all 420 cells of the spreadsheet. The 
display affords 15 rows/colums. Loading of data 
into more than one cell can occur across/down 
one or more row/column simultaneously. With 
vertical windowing you can arrange a set of col- 
umns in any order, or practice using fixed-variable- 
alignment display formats. The menu offers 6 
options: enter / erase, move, calculate, print, save 
and clear the spreadsheet. Enter/erase allows 
the entering, deletion or data alignment within a 
cell through the use of a mobile cursor. With the 
move option you may move around the entire 
sreadsheet to access any row, column or cell. 
The calculate option allows you to enter labels, 
values or formulas into a cell or write and enter 
equations that will act upon the data already within 
the spreadsheet. You can also enter bar graphs 
into acellinthis option. Absolute /relative replica- 
tion, down/acrossacolumn/row, is alsoallowed 
by this option. Also this option allows the auto- 
matic calculation of the entire spreadsheet with 
one single command. Printallows youto outputto 
either the ZX/TS printer the entire spreadsheet by 
column-sets and row-pages through use of the 
COPY command. The entire spreadsheet may be 
saved on cassette tape or you may clear all data 
from it or erase the program from RAM entirely. 
The most salient advantage provided by an ESC 
over specifically vertical applications software is 
that an ESC provides a reusable framework with 
which you can compose any specific financial 
model rather than just belimitedto only one stati- 
cally fixed format for storing, displaying and 
manipulating numerical data. 


$16.95 















ZX-CALENDAR 














APPOINTMENT MADE 
WNESE 04717784 


waa” EVRN REED, CAREER 
M 8:32 A.M, 

SOUGNOSAB 1/72 HOUR 

WORE 235° f0575RB,87-» NO. 
E/OUTSIDE SALES, 


INSID 
ERLAND STORE, $35,000/YR 
INGUAL A PLUS. 






Time management is an important aspect of 
any serious business and personal agenda. 
Planning how to spend our time leaves us better 
prepared before and while we are spending it 
and we remain better organized after we finish 
spending it. ZX-Calendar operates in 16-64K 
RAM affording 25 appointments in 16K, 100 in 
32K or 180 in 48K and 64K. Each 
appointment record holds a maximum of 220 
characters. The main menu includes enter, 
search/check/sort, change, save, clear and 
print any and all appointments made on a 
specific date or with any party. Output to either 
the ZX/TS printer is permissible. This program 
will permit you to remember to do something or 
to be somewhere important by cataloging your 
answers to six questions that you must account 
for in order not to waste time when it is scarce: 
when, with whom, at what time, for how long, 
where and what are you going to discuss and 
conclude when you get together with someone 
else? The program lets you permanently 
originate, record, classify, search, sort, 
Calculate, modify, summarize, obtain a written 
report and store your answers to the preceding 
questions so that you will not forget what you 
decide to do with your time. This program 
identifies your time according to when you are 
going to spend it and with whom you are going 
to share it. Through these forms of labeling 
appointments you are able to verify or modify 
how your time is budgeted without wasting ink, 
paper or more time trying to remember what you 
said to yourself or what someone else said to 
you or where you placed certain written 
messages that you now can't find. With this 
program you will know where you can find 
exactly what you need to know about where you 
want to and have to be, or where you have been, 
before you get and after you got there. Thus, ZX- 
Calendar will let you plan your time so that you will 
never have to worry about what is ahead or what 
came before, for you will always know, by using it, 
to never be caught astray by any time-frame. 


$16.95 









$3.00 SHIPPING AND HANDLING/PROGRAM 


A.F.R. SOFTWARE - 1605 Pennsylvania Avenue, No. 204 - Miami Beach, Florida 33139 
DEALER INQUIRIES WELCOME (305) 531-6464 FLORIDIANS ADD SALES TAX 
L-1 © 1984 




















15-@ 


uv 


Yr 
63-@ 


4e- 


Part I 


**kk*kLet me start by easing your mind a bit. Just be- 
cause this is called "Part One", don't assume that you 
will have to wait for Part Two for the other half of a 
program or the other half of a discussion! I can't stand 
waiting for such things and I don't expect any 2068 user 
reading this to wait either. YOU WILL HAVE A STAND-ALONE 
PROGRAM WHEN WE ARE THROUGH WITH PART ONE...so read on! 


Figure 1: Classy Front End Font 





ie4 (NEXT UNE cope) 
141 (INDENT cope) 
200 (KERNING Cope) 















To-¢ THT 7B "-@ 
4i-> 42-4 


G0-¢ ale @z-6 
Go-T 67-7 61-7 -@ 


-@ 
6-7 722 WH-G 


BY PAUL BINGHAM 





7. 41-9 46) 9958 OG SO e2-4 5-5 04-S 





NS 2-1-6 OM SOIR T-SSCTBS 





To many a "FRONT END" may be a new term, to others 
it may already be an old and worn out computer industry 
buzz word. A FRONT END has come rather loosely to mean 
any user-friendly working environment for a machine, and 
is typically replete with fancy fonts, icons & windows. 
The Front End program is loaded first (or exists in the 
machine as firmware) and other programs can then be run 
and manipulated within the new environment. 

Epson a few years.ago introduced a new computer 
with such a program, but it ate up memory, slowed down 
functions to a crawl, and the "many features" got tiring 
to more experienced users. As is usually the case, 
others learned from these mistakes and now we have 
computers like Apple's MAC which owe all of their appeal 
to their FRONT ENDS. 

Although I use some of these other machines, I be- 
lieve my favorite is still my 2068! Its design under the 
hood is elegant; simple, uncommon speed and accuracy, 
and so easily adaptable! One thing I never had a passion 
for is the character set (or font) that comes with the 
2068. But the problems with the font are also found (and 
much worse) on the C-64 to IBM's PC! Let's look at a few 
examples to see just what I mean. 

Type in the words "big", "abode" and "pound". Do 
the letters look uneven...sort of like my first-grader 
wrote them? The fact is they ARE uneven. In order for 
some letters to have tails (descenders and ascenders), 
compromises are made. The rounded portions of the 
letters no longer line up! This same thing is evident in 
capitals as well. Type in the word "BEEF". Note that all 
of the horizontals in the middle line up nicely. Now 
type in "PHRASE". Few of these line up and the look is 
disjointed. 

Now type in "5010". Does the "1" look too small? 
Try "BRIEF". Does the "I" look too small as well? The 
lower case makes this even clearer. Type in "whimsical" 
and "“militiaman". Do some of the letters seem to far 
apart and others too cramped? All of these problems and 
similar ones on other machines can all be traced to the 
fact that each character is forced to be in an eight by 
eight pixel grid. The "i" will never be as wide as_ the 
"m" (although the computer designer has attempted it!). 

So what to do...it would be of little use to redo 
the 2068 font using the UDGs. They are 8x8 grids as 
well. Some computer models have 5X9, 6X8, or other grid 
sizes (like the QL) to try to compensate. But the only 
true way to solve the problem is to let an "i" be an "i" 
and an "m" be an "m". This is the way typesetters do it 
and it is, in fact, the way the MACINTOSH does it. The 
question is: "Can the 2068 do it?". The answer is: "Of 
course!". 

The font I have designed we can call NEW 2068 
MEDIUM. It is close to ITC Souvenir Medium with a flavor 
of Clarendon & Helvetica Condensed for all» you type- 
setters. It still has an eight pixel height but the 
width varies from eight down to three pixels. I have re- 
defined 98 characters, including graphics which will 
help us with icons, headers and windows later on. If you 
don't like some of my characters, I won't be offended if 
you alter them. After all, that's what I'm doing to 
Uncle Clive's set! If you have a revelation, send it to 
me, I might want to use it myself! 

To print the new font, we cannot easily use the 
PRINT command. But then the 2068 has at least three ways 
to put things on the screen. We will use the PLOT rou- 
tines as they address the screen by pixels and coor- 
dinates can be altered easily to accomodate the new 
three to eight widths. Listing 1 is a program in BASIC 
and is simple to alter. The program reads the coor- 
dinates from lines of BASIC, so can be used along with 
any programs you care to write. It does not overwrite or 
interfere with normal 2068 printing, so both can be used 
at once if you wish! 


Continued Next Page. 





In Part Two we will look at the machine code 
version of this program which is faster and can reside 
most anywhere in memory. For those who have been en- 
joying the excellent Z80 code lessons in TDM by Syd 
Wyncoop for the past year, this will be a treat. Most of 
the instructions have been covered in his articles 
already! 

Although Listing 1 looks incredibly long, it is oh 
so simple! Line 1000 is the main loop which reads a line 
of standard 2068 text. It will jump to line 33 to 201, 
depending on which character code the loop finds next. 
Simple, huh? If you wish to find which program line 
draws which character, just look up the character code 
number...they are listed in the 2068 manual starting 
with page 239. The rest of the program is housecleaning 
like keeping track of the end of the screen. 

In Figure 1 are sketches of each of the 98 char- 
acters in the new font. Under each is the character code 
and a number showing the pixel width. Most are the same 
symbol as the original set, four have changed greatly, 
five were not symbols before but are now. Let's now go 
over the changes. Number 96 was the famous pound symbol 
but is now a square icon throwing a shadow. Number 123 
{a bracket) is now an inverted underline symbol. Number 


Figure 2 





- THE 2068 COMPUTER CAN 
Sy SEN EN Ie -<= Fun thou 
“‘programsLN Im <= be ine 
XPEnsively ExpandedLN IN <= perf 
orm many math FunmctionsLN IN <= 
entertain YOULN IN <= educate yo 
U 


SS THE 2668 COMPUTER CRA: SSE 


«yun theusonds of procrams 

* be inexpensively expended 

* perform many math functions 
* entartcin you 

* aducate you 


Listing 1 
TS2068 
1 REM CLASSY FRONT END Part i 


45 PLOT x42,494+3: 
@®.1: GRA -3, 
46 PLOT x4+2,4941: 
6.1: CRAY -1,8: 
47 PLOT x+2,Y941: 
X¥+#3,4U43: DRAW O,1: 


1Q8 DIM n#t(2A8): GO TO 1808 

32 GO TO 1138 

33 PLOT x4+2,Y4+1: 
T X4+2,4u4+3: DRAU 8,3: DRAW 1,8: 2 
RAW @O,-3: GO TO 1146 

34 PLOT x4+2,44+7: DRAW @,.-e2: PL 
OT x45,44+5: DRAW &,2: GO TO 11728 

33 PLOT X%4+1,4: DRAW O,7: PLOT 


CRAW 1,0: PLO 
CRAW O,1: 


X+4,Y41: 


“OH Ga £ fc 


‘ GO TO 1150 
48 PLOT x41,u+2: 
pRaAu 
RAW 2,8: PLOT x4+5,u42: 
PLOT x4+3,y43: PLOT x4+4,y4+4: GO 


124 a graphic symbol on British machines and the STICK 
command on the 2068 is now a bar symbol (we come full 
circle! ). Number 125 was a bracket and is now a_ series 
of lines. Number 126 also a graphic symbol on British 
machines and the FREE command on the 2068 is now a star. 
Number 127 was a seldom used copyright symbol and is n 
the cent symbol. Number 199 was the "less than/equa. 
symbol and is now a small black square. Number 200 was 
the "greater than/equal" symbol but is now a _ special 
code for "Kerning". Typesetters use this to fit letters 
like "L" and "Y" closer together than they would nor- 
mally be. Number 184 was the LN symbol but we will use 
it as a special code to jump to the next line. Number 
191 was IN but we will use this as a code to indent 
twenty spaces. Last is number 201 which was a "does not 
equal" symbol and is now a hatched line symbol. The use- 
fulness of some of these will become apparent in later 
discussions, but are fun to experiment with now. 

Experimenting will show that even though all the 
new font's characters are the same height as the ori- 
ginal Sinclair set, the spaces have been eliminated. A 
line of mixed text can now contain sixty or more char- 
acters per line! Try out the new symbols and the kerning 
code. Some possiblilities are shown in Figures 2 and 3. 
If the listing is beyond your patience to type in, send 
$4 and I'll send you a copy on tape. Send ideas and any 
questions you have, too, if you like! My address is: 
Paul Bingham, POB 2034, Mesa, AZ 85204. See you next 
time! 


Figure 3 











t'teea’ (2 $4,-./8125456789:;,<= 
G®RBCDCEFGHIJKLMNOPORSTUVUKYZ TX 5 
fabcdefghi jkimnopagrstuvwxyzt ST 
CK + FREE @<=<>3= 








Sse ety =, MIDTSETES 271 PF SRBCDEPGHIUELIN 
al S}t_Dobcdefgiijkimnoparstevexyz 


DRAW 3,0: DRA 57 PLOT x+5,y4¢2: ORAU O,1: DRA 
Go TO 1172 WU -3,8: DRAU 8,3: DRAW 2,8: PLOT 
DRAU 1,@: DRA *+1,y+4: DRAW @,1: PLOT x+2,y+1 
Ge TO 11508 : DRAW 2,08: PLOT x4+5,y4+4: DRAU a 


CRAW @.1: PLO Fe 
PLOT x+4,44 


GO TO 1158 


58 PLOT x+2.y+4: CRAY 1,8: PLO 


T x4+3,.442: DRAW -1,8: GO TO 1148 

CRAW @,3: PLO 59 PLOT x+2,y4¢4: CRAWU 1,0: PLO 

-2,@: DRAW @,5: T X4+2,yY: PLOT x+3,y41: CRAW @,1: 
DRAW @,3 CRAW -1,@: GO TO 1148 


6@ PLOT *4+1,494+3: 


CRAW G.-G: PL 
X4+4,4U: DRAW @,7: PLOT x,y+2: DRA +O D466 OT x~4¢1,y44¢4: DRAW S,3: PLOT *4+3.4 
Wws,@: PLOT %,4¥4+6: DRAW 5,8: Go 49 GO SUB 112@: CDRAY 2,6: GRA #2: DRAU -1,1: DRAW G,1: DRA 1, 
TO 1160 -1,0: DRAW @,5: PLOT x4+1,494+5: 6G 4: 60.-TO i115¢ 

36 PLOT x+3.y: CRAUWU O,7: PLOT G6 TO 1148 61 PLOT x,4+2: DRAW 8,2: PLOT 
X+1,4U42: DRAW 1,06: CRAW O.-1: BR 5@ GO SUB 118@: CRAW @.1: DRAW x,ud¢d: DRAW @.2: GO TO 1150 
AU 2,8: PLOT x4+4,u44: DRAW -2,8: 1,@: DRAW @,- _DRRY 2,8: PLOT 2 PLOT x*4+4,443: CDRAW -3,-3: PF 
CRAW @,2: CRAY 2,0: PLOT x4+5,4y+ X4+1,445: PLOT x 446: CRAU 1,8: LOT x+4,444: DRAW -3,3: PLOT x+2 
2: DRAW Q,1: PLOT x4+1,445: GO ro) PLOT x44,44+4: DRAW @,1: PLOT x+ »94+2: DRAW 2,1: DRAY &@,1: BRA 


1160 

37 PLOT x+3,y+58: 
RAW -1,@: DRAU @,2 
AW 4,2: DRAW @,-1: DRAW -1,8: BR 
AW @,-2: CRAW 1,6: DRAW @,-1: DR 
AW -1,-1: PLOT x+3,44+1: DRAW @,12 

DRAW 1,@: BRAY &,2: GO TO 1178 

38 PLOT x4+4,y441i: DRAW -1,-1: CG 
RAW @,1: CRAW -1,8: DRAW 8,4: DR 
PLOT x4+1,uU42: PLOT x43.4 
#6: DRAW -2,-2: DRAY 2,-1: DRAW 
1,0: GO TO 1152 


CRAW -1,-1: CG 
DRAW 1,1: BR 


390 PLOT «43,447: ORAW @,-1: BR 
AW -1,-1: 60 yd 1138 
48 PLOT x43, PLOT *4#3,.yu4¢7: F 


LOT x*4+2,u41: : 
y+2: DRAW @,3: GO To 1149 

42. PLOT x41,;U: PROT x4+1,yu4+7: FP 
LOT x+2,4y41: ORAU B,5: PLOT x43, 
y+2: DRAW @,3: GO TO 1149 

42 PLOT X41 yt+d4: DRAW 1.1: DRA 
We ot 3s PLOT X4+3,U43: DRAW @,4: 
PLOT x4+5,y44: DRAW -1,1: DRAW 1, 


1: GO TO 1168 
43 PLOT x+3,y41: DRAW O@,4: PLO 


T x+1,443: DRAW 4,08: GO TO 1168 
44 PLOT x+2,4: SLOP x43,,y+1: BD 
RAW @.2: CRAY -1,8: GO TO 1148 


3,44+3: GO TO 11506 

Si PLOT x41,.4942: PLOT x4+2,441: 
CRAW 2,80: DRAY &G.5: CRAU -3,8@: 
PLOT x45,44+2: BRAY 8,1: PLOT x45 
»446: PLOT x+3,y44: GO TO 1168 

52 PLOT *4+3,y41: ORAW 8,5: CORA 
W -1,@: GRAW @,-1: PLOT k+4,443: 
CRAW -3,@: BRAY &.2: GO TO 1158 

53 PLOT x*41.4942: PLOT x*44.,.446: 


CRAW -3,.@8@: BRAW &,.-2: CRAW 2,@: 
PLOT x42,445: PLOT x+4.442: GRA 
WOe,1: PLOT x+2,441: CRAW 1,8: G&G 


Oo TO 1158 


54 PLOT x+4,y41: 
AW G@,1: BRAY -1,8: 
Woi.@: CRAY @.28: PLOT x¢+4.y44¢4: BD 
RAW -3,@: PLOT x4+5,u42: BRAY @,1 
: PLOT x4+3,494+6: CRAYU 1,6: GO TQ 
1168 

55S PLOT x4+1.y41: 
Wo1,0: DRAW @,1: CRAW 1,0: DRAW 
@,2: DRAW -3,8: GO TO 1148 

56 PLOT x+4,y4+1: CRAW -2,8: BR 
AW @,1: DRAW -1,0: DRAW 0,1: CRA 
Wii,@: CORA 8,3: CRRW 2,0: PLOT 
X41,4Y45: PLOT x4+5,.445: PLOT x+3. 
u¢4d4: DRA 1,8: PLOT x4+5,u¢2: DORA 
UWO.1: GO Ta 1168 


1G 


CRAW -2,8: DR 
CRAW @,1: DORA 


CRAU O.2: DRA 





771: Go -1O"2158 

63 PLOT x41,4945: PLOT x4+3,4941: 
DRAW 1,8: PLOT x42,4u46: DRAW 2, 
@: CRAW @,.-1: BRAY 1,@: DRAW @,- 
41: DRAW -1,8: BRAYU &@,-1: CRAWL -1 
,6: GO TO 11628 

64 PLOT x4+3,y9+2: DRAW -1,0: BR 
AW @.,1: PLOT x41,445: PLOT *+3,4 
#4: DRAW 1,8: BRAWL @,-3: BRAY 1. 
@: PLOT x*4+6,y42: CRAY GS: PLOT 
X4+2,4U46: CRAY 3.8: CO TO 1178 

65 GO SUB 118@: CRAY @,4: PLOT 
%42,441: DRAY @,5: DRAYU 2,8: PL 
OT x~4+5,y4¢1: DRAW @.4: PLOT x+5,y9 
+3: DRAW -2,8: GO Ta 1160 


66 GO SUB 1188: DRAW @,5: PLOT 
%¢4¢,4U4¢1: DRAW -2,8: DRAW O,5: & 
RAW 2,0: PLOT *45.445: PLOT x43. 


y4¢4: DRAW 1,8: PLOT x4+5,y42: GRA 
ii @,.25--GO Th t4iSe 

67 PLOT x4+1,.442: CORA 8,3: 
T X44,4U41: DRAU -2,8: DRAW OO. 
DRAW 2,@: PLOT x4+5,4u42: PLOT x45 
»445: GO TO 1158 

63 GO SUB 1128@: DCRAL &@,5S: PLOT 

X4+4,4U41: DRAW -2,0: DRAW 8,5: BD 
RAW 2,8: PLOT «45,5342: CRAY 8,3: 
GO TO 1162 





6S PLOT x+5.y4+1: ORAVU -4,8: BR 
AW @,5: DRAW 4,2: DRAU -3,0: DRA 
WO,-2: DRAW 2,8: DRAYU -2,@: GRA 
Uo.-2: GO TO 1166 

7@ PLOT x+5,446: CRAW -4,8: BR 
AW @,-5: DRAW 1,86: DRAW 0.3: CRA 

2,0: PLOT x4+2,445: GO TO 1158 

‘Yi PLOT x*4+4,443: DRAW 1,8: GRA 

@,-2: DRAW -3.0: CRAY O.5: BRA 
-.2,0: PLOT x+1,u4+2: DRAU 0,3: P 


LOT x4+5,y4u4+5: GO To 1160 


72 GO SUB 118@: DRAU @,5: pDRAU 
1,0: DRAW @,-5: DRAW ©.3: DRA 
3,0: DRAW 8,2: DRAW @,-5: GO To 
11628 

73 GO SUB 1188: DRAW 2,8: DRAY 
@,5: DRAW -2,8: ORAU 3,0: DORAL 
-2,@: DRAW @,-5: GRAY 2,8: GO To 
1158 

74 PLOT x+2,y4+1: DRAW 2,8: DRA 

@,5: DRAW 1,8: CRAW O,-4: PLOT 


X+1,44+2: DRAW 2,1: GO TO 1162 
75 GO SUB 1188: DRAW @,5: BRAY 
1,@: DRAY @,-5: PLOT x+3,4u43: 6 
RAW O.1: PLOT x+4,.442: PLOT x44, 
Y+S: PLOT x+5,y41: PLOT x4+5,y46: 
GO TO 1162 
76 GO SUB 1128: DRAY 2@,.5: pRAY 
aan DRAW @,-5: CRAW 3,0: GO To 


77 GO SUB 1188: DRAU @,5: DRAU 

1,0: DRAW @,-5: PLOT x+3,u45: P 
LOT x+4,y4+4: PLOT x4+5,y45: CRAV 
$335 DRAW @,1: DRAW @,-5S: GO Ta 

rd 

73 GO SUB 1188: pRAU @,5: DRAW 

1,0: DRAW @,-5: PLOT x+3,u4¢5: fb 
RAW O,-1: PLOT x4+4,.443: DRAU @,- 
1: PLOT x+5,y41: DRAW @,5: Go To 


1160 
79 PLOT x+1,y+2: DRAW 0.3: PLO 
T X+4,4U4+1: DORA -2,8: DRAU @,5: 
DRAW 2,0: PLOT x+5,44+2: DRAW 2,3 
: SOSEO Lise 
8@ GO SUB 1188: DRAU @,5: BRAY 
3,@: DRAW -2,8: DRAW O,-5: BRAY 
6,2: DRAY 2,@: PLOT x4+5,y4¢4: BR 


AW @,1: GO TO 1162@ 

61 PLOT x+3,44+3: PLOT x4+1,442: 
DRAW @.3: PLOT x4+4,442: DRAU a, 
~i: DRAW -2,.8: DRAW 8.5: DRAW 2, 
@: PLOT x+5,y: DRAW B,5: GO To 1 


S2 GO SUB 118@: DRAW G,5: pDRAU 
»@: DRAU -2,8: DRRU @,-5: DRAL 


®.2: DRAYU 2,8: DRAW &B,-1: DRAW 
1,0: DRAW @,-1: PLOT *4+5,4944: DR 
63 PLOT x4+1,y42: 
WU @,-1: DRAW 2,8: PLOT X4+4,444: 
DRAW 2,8: P 
LOT x+5,u¢2: 
y+5: GO TO 1162 
DRAW 2,0: DRA 
@,-5S: DRAW 1,2: DRAW @,5: DRA 
2,0: GO TO 11688a 
Wo1,0: DRAW @,-S: DRAW 2,8: PLOT 
X+5,442: DRAW @,4: GO TO 115a 
Wo1,0: DRAW @,-3: DRAW 1,8: DRAW 
6,1: DRAW @,-3: DRAW 1,0: DRA 
T X+6.4+5: DRAW @.1: GO TO 1168 
87 PLOT x+1,.y4+2: DRAU @.4: GRA 
7 ge BE >: DRAW @,2: DRAW @ 
,-2: DRAW @,4: PLOT x4 
88 GO SUB 1198: 
@,1: DRAW 1,8: DRAU @.1: BRAY 1 
DRAW -1,0: CRAU a2, 
1: DRAW 
@: PLOT x+5,y442: PLOT X4#5,445: P 


AU @,1: GO TO 116¢ 
CRAW 1,0: DRA 
DRAW -2,0: DRAY @,2: 
CRAU @,1: PLOT x41, 
64 PLOT x4+1,4+6: 
8S PLOT x+1,.y4+2: ORAW O.4: DRA 
66 PLOT x4+1,44+5: CRAW O.1: DRA 
®,1: PLOT x+5,44+3: CRAW 0,1: PLO 
Wo1,0: DRAW @,-5S: CRAU 1,@: DRAW 
5S,YU¢i1: 
DRAW 1,0: BRAY 
»@: DRAW @,1: 
-1,8: BRAYWU 8,1: DRAW -1, 
LOT X+6,y41: PLOT x4+6,446: GO Tao 
11708 


69 PLOT x+4,y444: DRAW O,-3: BR 
AW -1,0: DRAW 8.3: DRAW -1,8: BR 
AW @,1: DRAW -1,8: DRAW O,1: PLO 
oad Sack PLOT x+5,445: GO To i 
98 PLOT x+1,y44+6: DRAW 4,98: BRA 
@.-1: DRAW -1,0: DRAW O,.-1: DBR 
AW -1,8: DRAY @,-1: DRAW -1,8: fo 
RAW @,-1: DRAW -1,8: DRAW @,-1: 
DRAW 4,8: GO TO 1168 
91 PLOT x+2,y: DRAW -1,8: DRAU 
7: DRAW 1,8: GO TO 1136 
2 PLOT xX+4,441: DRAW 0,1: PLO 
£43,443: DRAW G11: PLOT X42 .54 
S: DRAW @,1: GO TO 1158 
93 PLOT x4+1,y: DRAW 1,0: DRAW 
@,7: ORAW -1,8: GO TO 1130 
94 PLOT x+l1,y+4: DRAU 2,2: DRA 
W2,-2: DRAYU -2,2: DRAW O,-5: GO 
TO 1162@ 
95 PLOT x,y: DRAW 7,8: GO TO 1 


180 


Ger? 
FRED 


$6 PLOT x+6,¥y: 
@,5: DRAW 1,8: DRAW G,1: 
»@: DRAW @,-5: DPRAYU -5,2@: 
»o: GO TO 13288 
97 PLOT x4+4,4+44: 
AW -2,.0: DRAW 2.3: 


OCRRW -5,08: CORA 
DRAW 5 


DRAW 2 


CRRU @,-3: DBR 
CRAW 1.8: PLO 


T X¥4+1,442: DRA @.1: GO TO 11528 

$8 GO SUB 1128: DRAW &.5: DRAW 
@,-2: CRAY 2,8: ORAY @,.-3: DRA 

-1,0: PLOT x4+4,4942: DCRAU 0,1: 6G 
O TOG 1158 

99 PLOT x+1.44+2: ORAU O.1: PLO 
T X4+4,Y4¢1: DRA -2,8: DRAW 8,3: 
DRAW 2,8: GO TO 1158 

106 PLOT x+4.,446: DRAW O,.-5: oR 
AU -2,0: DRAW 2,3: CRAY 1,8: PLO 
T X¥4+1,44+2: DRAW @,1: GO TO 115@a 

101 PLOT *+4,44+3: CRAW 8.1: DRA 
W -2,@: DRAW @,-3: CRAY 2.8: CRA 
W-1,0: DRAW @,1: DRAW -2,8: DRA 
W@,1: GO TO 115¢e 

102 PLOT x+1,.y444: DRAW 2,8: PLO 
T X+2,4U4¢1: DRAW 6,5: PLOT X43, 454+ 
6: GO TO 1142 

103 PLOT x4+4,y: DRAU G4: DRA 
-2,0: BRAY @,-3: DRAU 1,0: PLOT 
X¥+1,443: DRAW @,-1: PLOT x44,4: 
DRAW -3,@: GO TO 1156 


104 GO SUB 11838: CRAY @,5: PLOT 

X+2,.494¢4: DRAW 1,6: PLOT x4+4,443 

DRAU @,.-2: GO Te 1158 

105 GO SUB 1188: CRAY 2.8: BRA 

-1,0: DRAW 8,3: DRRU -1,0: PLOT 

X¥42,4U46: GO TO 11246 

166 PLOT x,y: DRAU 1.6: PLOT x+ 
2,4u4¢1 @,3: PLOT x4+2,446: G 


107 GO SUB 118@: DRA @,5: PLOT 
X+2,4+43: DRAW 1,6: DRAW B,-1: P 

44 X4+4,Y4+1: PLOT x4+4,y44: GO To 
1150 


106 GO SUB 118@: CRAY 2,8: BRAY 
-1,0: DRAW 8,5: PLOT x4+1,446: 6G 


GO TG 1149 

109 GO SUB 118@: DRAW &@,3: PLOT 
X+2,4U+1: DRAW @,3: BRAY 3,8: PL 
OF x+4,441: DRAW @,.2: PLOT x4+6,y 
+1: DRAW @,2: GO TO 1178 

1180 GO SUB 1188: DRAW @,3: PLOT 
X42,49+1: BRAY @,3: DRAY 1,8: PL 


OT x+4,441: BRAU G,2: 
111 PLOT x+3,y41: CRAWU -1,8: BR 

AW 8,3: DRAW 1,8: PLOT x4+1,442: 

DRAW @,1: PLOT x4+4,442: DRAUW @,1 


GO TO 1158 
CRAU G4: DRA 


“412 PLOT x41,y: 
2,8: DRAW @,-3: DRAW -1.0: PLOT 


X44,443: OCRAYW @2,-2: GO To 11528 
113 PLOT x+4,y: DRAW O.4: DRAU 
-2,@: DRAW @,-3: DRAY 1,0: PLOT 
X41,494+3: DRAW &2,-21: GO To 1158 
1i4d GO SUB 1188: DCRAL &@,3: PLOT 
X42,Y+1: DRAW @,2: PLOT x43,4944 
DRAW 1,8: GO To 1158 
115 GO SUB 1182: DRAU 2.8: DRA 
@,2: DRAW -2,8: PLOT x4+4,y42: P 
Lok X4+¢4,Y4+4: DRAU -2,6: GO TO in 


a) 

116 PLOT x+2,44+1: DRAW 6.5: PLO 
T X4+1,y44: DRAY 2,0: PLOT x4+3,44 
i: GO FO 11498 


GO TO 1158 


117 PLOT x4+1,44+2: DRAU G,.2: PLO 
T X+2,Y4+4: DRAW @,-3: DRAU 2,28: 
DRAW @,3: GO TO 1158 

118 PLOT x+1,y4+4: DRAW G,.-1: BR 
AW 1,8: DRAW @,-1: CRAY 1.0: DRA 
WO,-1: PLOT x+4,443: BDRAU 8,1: 
GO TO 1158 

119 PLOT x4+1,4+2: ORRAU G.2: PLO 
T X*4+2,U4¢4: DRAY @,-3: DRAU 3.®8: 
DRAW -1,0: DRAY @.2: PLOT x+6,494 
2: DRAW @,2: GO Toe 11708 


128 GO SUB 118@: PLOT x41,y44: 


PLOT x4+4,y4+4: PLOT *44,441: PLOT 
X4+2,4+2: DRAW 1,8: DRAYU 6,1: BR 
AW -1,0: GO TO 1158 
12l PLOT x4+1,y: DRAW 1,0: PLOT 
X4+3,.Y4¢1: PLOT X4+1.443: GCRAU 8.1: 
DRAW 1,8: DRA @,-2: DRAU 2,8: 
DRAW @,2: GO TO 1156 


id22 GO SUB 1188: DRAYU 3,6: PLOT 
X+1,494+4: DRAW 3,8: PLOT x4+2,y42 
: PLOT x4+3,443: GO TO 115¢8 
123 PLOT x,y+7: CRAYW 5,0: GO Ta 
1160 

17 


t2¢4 PLOT x4+1,4: DRAU @,.7: PLOT 
X4+2,Y: DRAW @,7: GO To 1140 

125 PLOT x,y: DRAW 5,8: PLOT x, 
Ute: CRAYW 5,8: PLOT x,u¢d: BRAY 
3,0: PLOT x*,y+6: DRAW 5,0: GO To 
1160 

126 GO SUB 110@: DRAW 3.3: PLOT 
X+7,441: DRAW -2,.2: PLOT x4+2,44 


1: DRAW 4,4: PLOT x4+5.,443: DORA 
2,2: PLOT *+65,4u41: CRAW -4,4: PL 
OF X4+4,444: BRAY @,3: PLOT *4+3,4 
#3: DRAW -2,2: GO To 11388 
127 PLOT xX+1.443: ORAU O.b: PLO 
T X4+4,Y4+2: DRAW -2,8: DRAW a,3: 
DRAW 2,8: PLOT *4+3,4: DRAW 8,2: 
PLOT X43,4+5: BRAU @,2: GO TO in 
52 
164 GO SUB i138@ 
191 LET x=x4+28: RETURN 
199 PLOT xX+1.443: DRAW O,1: PLO 
T X¥42,u+3: DRAW @.14: GO TO 113@ 
260 LET x=x-1: RETURN 
201 PLOT x.y: DRAU 2,0: PLOT x, 
Y41: DRAW 2,2: PLOT x,yu4¢4: DRA 
2,2: PLOT «x,y4¥+7: DRAW 2,8: GO TO 
11308 
Soo RETURN 
180@ INPUT “PHRASE: “ings 
1618 INPUT “PRINT AT “; FLASH 1; 
tog Pishom OF" et to 209 os yy 
12929 INPUT “PRINT AT ¥,"; FLASH 
Age eee eae Oe 5-H Otis ex 
1830 PRINT ns 
1040 LET x=xx#8: LET y=168-yuca: 
FOR t=1 TO 288: LET s=CODE nsi(t 
} S60 -SU8 a: NEXT? 
1@58 sTap 
11008 PLOT x4+1,44+1: RETURN 
1128 LET x=x+2: IF x3248 THEN Goa 
TO 139@ 
1125 RETURN 
113@ LET x=x4+3: IF x>248 THEN Go 
TO 13808 
1135 RETURN 
1148 LET x=x+4: IF x3248 THEN Go 
TO 1308 
1145 RETURN 
1158 LET x=x4+5: IF x>248 THEN Go 
TO 1308 
1155 RETURN 
131608 LET x=x+6: IF x3248 THEN Go 
TO 13902 
1365 RETURN 
117@ LET x=x+7: IF x>248 THEN Go 
TO 139028 
1175 RETURN 
1160 LET x=x+8: IF x>245 THEN Go 
TO 1302 
1365 RETURN 
1300 LET x=@: LET y=u-8: RETURN 
$999 SAVE “CFE” 


bet YH Fat 
ea F oe] 


g 


STAR TREK 


be ry em 
+ Aer 





g 


& Game of strategy 


T/S 2464 --7 LE 


Witt gow accept 


Send $8 
h 


; | 


-93 to 
chael E. 
16 NE Ti 
cr 


Mi 
19 
Portland, 


Based on the HP2000€ Publ ic Donain pProscan 


VELS of pPlay-- 


the chattenger 


g 
















Character Font Generator 


Now, you can design your own 
UDGs and character sets with 
this great programmer's tool. 
It even comes with 4 fonts to 
get you started. Plus, it can 
make sprites for use with the 
Advanced Video Modes. One 
joystick required. 


Advanced Video Modes 


The most complete package for 
utilizing all of the T/S 2068's 
enhanced screen displays to their 
fullest. It provides access to 32, 
64, and even 8O columns, plus 
dual screen and extended colour 
modes. Updates are available 
for just $800 Can/US. 


$1500 US $2000 Canf'$2000 US $2500 Can 


Send cheque or money order for $1.50 US/Can. to receive our catalogue complete with 
Demonstration Tape V3.0 plus bonus programs. And remember, we still pay the 
postage & handling charges on all our orders! 


756 Fleming Avenue, Winnipeg, Manitoba, R2K 1V5 
"The best DAM software around 


eS The following program listing is for the Timex 
\\ Sinclair 2068. CUBE-IT is a game loosely based on the 


JUMBLE Word-Cube game by Parker Brothers, which was 

6)* C BS ic. = | T popular about 5 to 10 years ago. Instead of a 5x5 grid, 
[ i I use a 6X6. The letters are chosen completely at random 

from the A$ (Line 30) in order of most used. The game 

By Ralph Hammer also features full instructions on the screen, a two- 


minute timer, a copy option using the TS2040 printer, 



















































1@ REM .CUBE-IT. VERSION 2.1.7- and a scoring ledger. CUBE-IT is fun to play for ages 
sia aaa eke Bake 6 to 96. Give it a try! 
ee LL 47450: PURC ecsbot,c: . * . 
LET MUSIC=708@:. LET Fat=s2a:. LET I will also send the program on a high-quality tape 
THIN=888: GO SUR 2a: GO SUB THI to anyone who does not want to type in the LLISTing, for 
s = Sea ee $4.00. Ralph Hammer, 7 Baer Drive, Las Vegas, NV 89115. 
O@ LET AsSS"ETAONRISHDLFCHUSYPU 
BUVKXUOZ": LET Ls=" = = =: 

; 165 PRINT “By: Ralph Hammer, La 275 IF Ig="4" THEN Go To isea 
5SQ@ REM Continue & Vegas, Nev"iLs : BBQ IF Ig="S" THEN GO TS issa 
188 REM -TITLE PHGE- 17S REM -PoOETRY- 335 GO To 255 = = i 
185 BORDER &: BRIGHT i 188 60 SUB FAT: PRINT “‘"‘GRAB A pot cei 

: INK @: BRIGHT @: CLS PEN, AND SOME PAPER, IT‘STIME T 38a REM -GAME- ts Se 
4118 PRINT °" SSF THE O PLAY A WORD SEARCH CAPER" ot ae ae 6: BRIGHT 1: PAPER 6 
" 185 PRINT “"PLAY IT SOLO, EVEN CE ze A RET Pe en's 
115 PRINT " AB TWO OR MORE. SEE WHO GETS THE FI 31@ GO SUB _i5@a: GO SUB THIN _ 
450 PRINT ° De RST HI.SCORE.” GIS PRINT FLASH 1;HT 12,2; "SSI 
125 PRINT * a2 18@ PRINT "NOW DON'T BE SHY, 0 HXBISNScHe Scere Scese5S - 
138 PRINT " RE R_VERY TARDY.PUSH A KEY FOR A SE _Se@ FOR I=i 1G 18: FOR J=3 TO 1 
135 PRINT " ae ARCHING PARTY" 5S: BEEP .@83,3: NEXT J: NEXT I _ 

ees ; 195 GO SUB THIN: GO SUB HUSIc 325 GO SUB L588: RANDOMIZE : LE 
142 PLOT 64,158: DRAW @,-3a: 280 PAUSE NOT x: BEEP .@5,5 TLRSPEER S20 70+e55ePEEK 20673 

AU 20,8: PLOT 33.15@: DRaY a. 225 REM -NENU- 330 60 SUB 1788: GO SUB THIN 
: DRA = 2: PLOT 66 458: DRL 234 BORDER 4: SRIGHT FAPER 4 482 REM -TINER- 

is@- PLOT €3,158: DaAU &,-sa- : CLs 410 BEEP .2,1@: PAPER 2: INK 7 
145 PLOT S85 155: DRAW O.-46: DR 235 PRINT BRIGHT 1: PRINT AT 18,18; " 

W 28,8: DRAU 8,38: DRAW -18,20: )2 CUBE-IT ; ail ade ae 
Star és ibe DRA a. ae PLOT ii 24a INK @ 415 LET Y=FEEK 23672: FOR M=2a T 
2, a oh BO —" Fee eel OE 4 . as Bim eS = a es. i sy —sf rm = 

4,120: SRAU 8,30 Ct eae fess eae fie re eee 
15@ PLOT i28,435 DRAL 18,8: DR e2ed5 FR 428 EET ASPOOR cuore iF HOD tA 

AU @,15: DRAW Bele: DRA @, se: SO SUB F “Yisss THEN GO TO 428 | 

SQ: DRAU'@,-15: PLOT 126 6p “E-IT"*"-"" 3, PEAY GAME™*7* "79; TAB 17;":";T: NEXT T: Bi 

au a — 3%: PLOT 144,423: = RAKE BACK-UP TAPES" §&. Bees ee 225,11 
ISS SLOT BSS.is5. peau a pESS_PAUSE @: LET IS-INKEY$: BEE 430 NEXT 5: NEXT MH: BEEP . 3)... 
ar aoe a ge ees a .05,5 BEEP 1.339 
fll 20,8: BRA @,S: PLOT 5a aze% ge Pe Oe Se eee eee ag IS Se BS 

ane aa age ot 549746 7 268 IF Ig=s"1i" THEN Go To 322 435 PRINT AT 13,13; "°2:88:8": BE 
iid ee; . _= _= é + * “ Sas IF 3 & = =" —? TMor. mm To 44 A i—4 = - 4 %al corrcnt 4 I= 

@,-46: PLOT 225,128: DRA ae Se eee, Set oe we ee EP a eae: BEEP «3,15 
Lea PRINT : a’ FUN-FoR- ii LORD 272 IF Ts="3 THEN SO TO 32a 442 INK @: PRINT AT 22 if FLAS 
Se ae 2 445 PRPER 6: FRAUSE ise 











































Sea REM - 38a REN 1120 PRINT °" TO SCORE THE GAME 
Sa5 co su 9,2;" S8S PoK OF Ue“ CUBE-IT""" ree RE 
{R> RE-DRAU SCORING ® 988 REM ii2S PRINT “JUST THE NUMBE 
510 PRINT 4C> COPY CUBE TO 985 BORD R_OF 
PRINTER"’’* <> ANOEHER GAME" ie 1130 P 
" <M4> MAIN MENU": GO SUB THIN gia ae re 
fr. PAUSE @: LET IgsINKEYS: IF gis i135 6 
C" THEN LET 528: GO TO 53a eee isaa Pp 
\ 4 IF Igs"A" THEN Go To 32a 328 8°; TAB 
S25 THEN GO TO 225 AHE oO 1218 DATA 
53a SUB 1582: RANDO oD WIL ife8 RESTO 
MIZE RB: 7288: GO SUB i2ea 925 READ JU: P = 
: GO F NOT S THEN COP UTE T “TAB 26-L 
Y ai ¥ 1238 RETURN 
535 (COPY 932 PR T 1282 REM =7 
£p 2 ERY T Wo, THR 5 L385 BORDER = 
NKEY Oo S535 LETTER HAT C : CLEAR 
Saa To 3a ITHIh Srp? 1318 SAVE “CUBE” LINE. 18: BEEP 2 
2 o25 RITE ,25: PRINT INK 7; "Piay tape; pre 
545 GO To 225 WORDS ou cA SS a key to verify" 
S@a REM -FRAME- THE Ti THUTE 1315 PRUSE @: £h5 VERIFY CUBE 
685 PLOT 57,150: DRAW 142,03: PL oda IN: & “: BEEP 2,25: RUN 
OT 58,149: DRAW 139,2@: PLOT 59,1 55 A iTI 1358 REM - 
43: DRA 133,20 345 A355 SORE 
612 PLOT 57,58: DRAW 142,28: PLO BEEP ee 
T 58,51: SRA 139,8: PLOT 59,52 asa 1368 SOUND 
DRAW 135,2 IN AN 1355 FoR I 
615 PLOT i99,452: -128@ VER 13728 SOUND 
PLOT 198,15@: DRAU os5 1375 NEXT 
622 PLOT 57,152: 198: P coms 1282 FOR D 
LOT 58,149: DRAU oO OT i199 IONS 12385 SOUND 
,15@: GRAY @,-iae2: 3,152 360 PRINT WH 16;:12,56; 1% 
DRAW @,-99 - A LETTER Mii 1338 PAUSE 
625 LET X=57: LET Y=i408: LET Z= LETTER = 41395 SOUND 
a oR AT A co 1488 PRINT 
6308 PLOT X,132a: DRAW Y,2Z: PLOT $65 PRINT ° "6 : LOW ee 
KX,115: DRAW Y,Z: PLOT X,18@8: DRA TO FORM THE 0: HOF ; i 1582 Mo 
Wo¥,Z: PLOT X,84: DRAW Y,Z: PLOT LETTER TWICE" isia ee 
%,68: DRAW Y,Z O72 PRINT ““FOR EXAMPLE: * ; 
635 LET X=15@: LET y=@: LET 2Z=- 975 _ PRINT 4 
ag 3 6 TO SPELL 
642 PLOT 88,x%: DRAW ¥Y,Z: PLOT i 382 GO Sus 
@4,X: DRAW ¥Y,Z: PLOT 128,*: DRAW So_ANY KEY 
Y,Z: PLOT 152,xX: DRAW Y,2: PLOT 985 PAUSE 
175,%: BRA Y,Z BEEP .85,5 
645 RETURN SS2@ PRINT 
TT. => OS B34 ry 
788 REM -HUSIc- Be eager ibis"ind 
785 FOR xX=2 To 128 LE SRE Gots 1648 GO sus 
7id@ LET F=INT (RNDse5s3 ee ee gs et AE 
715 SOUND 3,F;8,15; 7,82 yet ys See A fe 
720 PAUSE 10: IF _INKEY$<>"" THE REACH SOO 1650 PAUSE 
NULET X=@: GO TO 730 THE WINNER. | fe #88,5:" 0 
oS NEXT x 1880 FRINT < ALL mi zs itt ; 3 pe x oe ee wae a 3 a 
2 SOUND 7,63; 8,8: RETURN 6 LEGAL NAHESAND ""SLANG"" iS 61660 IF ig='P), THEN GO TO 502 
-@ REM -HC!FAT- ARE PERMITTED. © OES Te Ne 
885 CATA 17,0,253,213,1,8,3,42, i885 PRINT (“AB SUC oo | heen 
A~ 3c ac = 34 Ion 42 a4 7 : t LiLiAnie Ss nr patie at a FS i | bn 0) be TS 
54,92,36,126,167,31,182,18,35,19 OREIGN WORDS mar f@O REM - PRINT LETTERS- 
,13,32,246,16,244,225,37,34,54,9 1818 PRINT *“Go 2710 PRINT ~~; BORDER @: LET Tsu 
== sig” = i page SR eei?y: FOR T=i1 To 6 
2,201 FUN a ‘il TT iT Tae cee mie Re en ie a 
$1@ FOR I=64737 To 94785 ig@2a GO To isae Seer ee ee Tee oe Fo 6 
S15 READ J: POKE I,J: NEXT I: R 1188 REM -5cCCRE- Ge FR Es ie SS a ee eg Bg 
ETURN 1105 BORDER S: BRIGHT 1: PAPER § 49 THEN IF INT (RND#2) THEN LET 
asa REM -FAT- 1118 GO SUB isae iS Se ee eee 
S55 RANDOMIZE USR S477: RETURN 11415 ar tag AT 1,19; INK 7; PAPER 1740 TF 7T>8 THEN IF INT (RND#e2) 
. . x es * "SAT 2,9; INK @; FLASH THEN LET T=a tae ee 
Pn ‘SABER See OO ROT CH. Ge? L7o0 iF NOT -T THEN=GO TO i728 
FGM PRINT AsiTi;* S 
1772 NEXT J: PRINT ‘*: NEXT I 
1788 GO SUB 688: RETURN 


Now at last. 


The FootePrint Printer Interface 


The FootePrint Printer Interface was originally described in the January-March 1985 issues of SUM Magazine. 
Now improved and professionally built, it is available direct from the designer! FootePrint plugs into the 
cartridge slot of the TS-2068 and works with both Tasman (B and C) and Aerco print driver software. Just 
load the software and print. No POKES required. No modifications. 


© for Centronics parallel printers © plugs into cartridge dock—door completely 

e works in both 2068 and Spectrum mode closes with cable running back under computer 

© compatible with OS-64 & Spectrum emulators : frees Bs ar: ue Aiegheae. owing a 
eripherals to be used; less chance of a cras 

e EPROM socket and on/off switch on board — 


@ print driver software for LPRINT, LLIST, and 


COPY included for 2068 and Spectrum modes 
FootePrint Interface w/software & cable ............$45° postpaid 


FootePrint with OS-64 option included .............$65°° postpaid 
el Bare board G instructions only .............. Lessee + $20°° postpaid 
Cable only for use with bare board ................ .. $15°° postpaid 

All prices are pre-paid and include shipping charges. Florida residents must add 5% state sales tax. 


FOOTE <, SOFTWARE P. O. Box 14655 — Gainesville, FL 32604 904/462 1086 (6 pm - 9 pm EDT) 


® requires no modifications to computer 


“The Mystery of the Missing 253” 


CONCLUSION 


By Wes Brtzorowski 


Wher & Wer?’ we Been 


It's been wonderful to see how much interest there still is 
toward TS2068 bank switching. Now it's time to tie up the loose 
ends we've left, provide a firm direction for your .own further 
study, and close the series up. 

For those just tuning in, we've been discussing the ROM 
code, searching the Technical Manual, and scouring various 
obscure sources to learn all we can about Timex's original plans 
for extended bank switching. Timex originally promised 256 banks 
of 64k each, and delivered a machine that could passably control 
3 (really only 2 1/8, for you purists out there). 

We've uncovered a method that could logically control the 
"Missing 253". (We've seen that the ROM software as is, limits 
itself to only 10 extra banks, but this is a mere technicality.) 
We then took a basic look at how that method works. We saw how 
the hardware and software were to have meshed together through 
only two small subroutines. This is a good system design practice 
and is a typical example of how hardware should be controlled by 
a processor. This allows hardware changes to be corrected through 
minimal software modifications, and will be a key factor in 
making extended bank switching practical. 

Following all this, we endured an excruciatingly detailed 
description of what the hardware must and must not do. (Al- 
ternately, this is what the system must be able to SIMULATE.) 
We've been going through the EXROM software that initializes the 
banks, calling attention to many obvious bugs along the way. All 
of this would be needed for an interested user to design a_ bank 
switching system that simply wouldn't crash the TS2068 on power- 
up. 

As a secondary effort, we've looked at an easy way to 
correct the ROM bugs, and toward the special I/O software that 
would have dovetailed with bank switching. We've little more than 
hinted about various blocks of I/O software in the ROM that are 
never used. We've also seen a little of how the RAM Resident Code 
would have supported bank switching, and will supply a_ better 
description before we're through. 


First, 
ting Flippin’ 


Fimi mh 
Fliowchar ts 


Flowcharts 7 and 8 cover the last of the initialization 
software for the expansion banks. Both point out major bugs in 
the routines that initialize RAM banks and renumber the banks. To 
save text here, I've tried to make these two as self-explanatory 
as possible. 

If you've made up a memory map of the EXROM routines we've 
covered, you'll see two gaping holes. The smaller of the two is 
merely a copy of Spectrum code that intializes some of the more 
mundane system variables. These are put off until after the bank 
switching is initialized, because programs running in the cart- 
ridge slot can take up some extra memory, affecting the values of 
these variables. However, this routine is of no interest to us, 
and should be left alone. 

The larger hole is filled by an unused routine that a _ per- 
forms a "warm reset" on the SYSCON table. This was once intended 
to be accessed by certain forms of the RESET command, from BASIC. 
We'll discuss the RESET command a little more in a moment, but 
flowcharting this routine should be an excellent exercise for 
those of you who've followed the series this far. Since the 


routine is not essential to this subject, we can't cover it 
further here. 
Our detailed discussion of the code has now covered all the 


useful initialization routines, the lowest-level RAM Resident 
Code that actually communicates with the hardware, and the in- 
termediate-level RAM Resident Code, which talks to the low-level 
stuff. (Whew! ) 


A Promise Fulfilled 


A long, long time ago, I said I'd provide a better des- 
cription of the RAM Resident Code, and the routines that don't 
relocate properly to high memory. It's time to set things right. 
The full page table, titled "RAM Resident Code - Routines, Usage, 
and Notes", is a reasonably complete "cheat sheet" on using the 
routines. Hopefully it's fairly free of typos and its small print 
will reproduce well on these pages. This will tell you most 
everything you need to know in order to use the routines, in- 
cluding how to correct them in low memory. Note that the 
following locations do NOT relocate properly when the code is in 
high memory: 

FC49/4A 

FC&C/D 


FCCE-FCDO 
FCD&é-FCD8 


FFO4/5 
FFOF-FF11 





14 


Without correcting the EXROM, you'll have to fix these every 
time the second display file is opened. CAUTION: you also have to 


change them BACK before closing the second display file, or the 
relocation to low memory will be messed up. 
By the way, the good folks at Timex left an interesting 


chicken-and-egg situation. It shouldn't be hard to imagine code 
that contains routines that open and close the second display 
file, and also routines that use the RAM Resident Code. If they 
operate independently, it may become necessary to find out where 
the RAM Res Code is at any given moment, so you'll know whether 
to CALL the low or the high addresses. 

Now, the "standard" Timex way of finding out is to check the 
system variable VIDMOD, which will be non-zero if the second 
display file is open, and hence, the RAM Res Code is in high 
memory. The problem arises when the memory chunk containing 
VIDMOD is not enabled for the Home Bank; how do you get at the 
variable? Well, we might first consider one of the RAM Resident 
Routines, GET WORD, which can read the contents of any memory 
location in any bank. Phat can read the variable. 

But we can't use GET WORD, because we don't know whether 
it's in low or high memory! If we did, we wouldn't need to read 
VIDMOD in the first place! Fortunately, the SP register (the 
Stack Pointer) can get us out of this mess. This is because the 
stack always follows the RAM Res Code around in memory, so if the 
stack is in high memory, so is the code. 

Unfortunately, there's no instruction that moves SP to 
another register. To get around this, LD HL,0000 and then ADD HL, 
SP. This effectively puts SP into HL, and let's us find where the 
RAM Resident Code is. The method suggested by Timex (using 
VIDMOD), can be very unreliable; you might consider using this 
method, instead. 


Aas Sstromgqg As It’s Weakest Link 


If you've used an assembler on the TS2068 to write a machine 
code program larger than 2k or so, you've probably noticed thas 
you have problems getting your source code to fit in the ava 
able memory. That's because a line of source text, which con. 
take 10 or 20 bytes, will assemble into an instruction only 1 to 
4 bytes long. While certain Spectrum assemblers have clever 


ways 
to get around this problem, we usually just break the code into 
smaller pieces, assemble them separately (usually with some mod- 


ifications), and then link the separate pieces together by hand. 

It should be no surprise that the assemblers used on some of 
the computers that the "big kids" use, can do this linking auto- 
matically. Code is assembled in separate "modules", with special 
reference commands for labels that are actually pointing to an 
external module. These separate modules are then linked by a 
program that's unimaginatively called, a "linker". Those of you 
who've seen the Timex listing of the "TS2000" ROM code will have 
seen how this works. (Since it makes the code harder to follow, 
you've probably cursed it, as well.) Still, this allows a _ com- 
puter to assemble a program that's even as large as it's full 
memory capacity. 





Table 1: RAM Resident Code - Routines, Usage, and Notes 


6200-62AD Function Dispatcher - Perforas a CALL or JP froa any bank to some 


F9CO-FRSD = HOME & EXROM bank routines 

SAMPLE USAGE - LD DE, #0000 
PUSH DE ySet input & output paraas 
PUSH DE jto zero 


LD DE, function # ;From Tech Manual Table 3.3.4-2 
PUSH DE pNSBel for JP, 0 for CALL 
(here we set up the registers & such as 
if CALLing the routine fro HOME bank) 
CALL #5200 or #F9C0 
NOTES:Routine address lookup table only points to low-meaory addresses for 
RAM-Resident Code routines. DO NOT try to use the Function Dispatcher to 
access another RAM Resident routine if they are located in high eeaory !!! 
62AE-6306 Link to Interrupt Handler in HOME ROM. Allows keyboard interrupt 
FAGE-FACe = routine at HOME ROM 02E1 to be accessed, if HOME ROM does not 
control chunk 0, but chunk 0 seaory links to this 
NOTES:Can be sodified to point to a different routine, but beware of 5 pairs 
of bytes that get changed when this routine is relocated 
6307-6314 Copy of NMI handler in HOME ROM. Not used at all 
FAC7-FAD4 
6315 BS_MAX_BNK A copy of the MAXBNK systea variable. Allows access to this 
FADS parameter, even when HOME Bank does not control Chunk 2 


6316-633A GET_WORD Perforas an effective LD HL, (HL) where (HL) is an address 


FADS-FAFA in any bank; not necessarily one that is active 
SAMPLE USAGE - LD HL, address 
LD By bank # 


CALL 96316 or #FADS 
633B-635B PUT_WORD Perforas an effective LD (HL),DE where (HL) is an address 
FAFB-FB1B in any bank; not necessarily one that is active. 
SAMPLE USAGE - LD DE,word to be sent 
LD HL, address 
LD B,bank# 
CALL #6338 or 4FAFB 
NOTES: This routine contains BUGS. TM6.5.3 gives adequate corrections. These 
corrections will relocate properly. 
S35C-S3AC WRITE_BS_REG Writes the value in register E to Bank Switching 
FBIC-FB6C Register whose nuaber is in D. Avoid using this routine. Let 
the RAM Resident Code access it for you, 
NOTES: For those who’d like to change this to drive a saner hardware archi- 
tecture, the original code is located at XI15C-X11AC & copied to HOME RAN 
S3AD-6404 READ _BS_REG Reads Bank Switching Register (single nybble) whose 
FBOD-FBC4 = nuaber is in register D, & another fros register whose nuaber 
is in register E. Packs both into E register. Avoid using this 
routine. Let the RAM Resident Code access it for you. 
NOTES:For those who’d like to change this to drive a saner hardware archi- 
tecture, the original code is located at X11AD-X1204 & copied to HOME RAM 
6405-644C GET_STATUS Gets the Horizontal Select Byte (lo-active) for the 
FBCS-FCOC = desired bank into the C register. If it’s an expansion bank, 
the status will also be returned in the B register 
SAMPLE USAGE - LD B,bank & 
CALL #6405 or #FBCS 
MOTES: Because of the flakey way that I/O port F4 is used as a Horizontal 
select for all 3 standard banks, they may "claia posession® of chunks 
actually controlled by expansion banks. This routine should be used by a 
larger one, that checks all expansion banks as well as standard banks, and 
uses the information as a coherent whole. Also, this routine contains BUGS 
corrected in TM6,5.2, though they can’t correct the above probles. 
644D-645D GET_CHUNK Computes the chunk for a given address 
FCOD-FCID 
SAMPLE USAGE - LD HL, address 
CALL $644) or SFCOD 
(return with A=Horiz Select Mask - hi-true) 
OASE-6498 GET_NUMBER Returns the bank 4 for a given address 
FCLE-FCS8 
SAMPLE USAGE - LD HL, address 
CALL #645E or SFCIE 
(return with A=bank 4) 
KOTES:Handles “oddness* in GET_STATUS by checking expansion banks first. Has 
a BUG, per M6.5.6. Should not be used if there’s a chance the EXROM aight 
be in use, 


SO ee re ee een eee nee een eee nnn nn ae eee eee wees eweenencece 


6499-6510 BANK ENABLE Gives control of desired chunks to specified banks 
FCS9-FCOD 
SAMPLE USAGE - LD Bybank # 
LD C,horiz select (lo-true) 
CALL 96499 or 9FC59 
MOTES:Contains BUGS per TM4,5.4. The aanual gives an adequate fix, but a 
neater fix would be to put F3 at 649A, and FB at 651B. Also, errors in the 
EXRON relocation table PREVENT THIS ROUTINE FROM RELOCATING PROPERLY! 


"The Mystery of the Missing 253" 


651E-6549 SAVE STATUS Used internally to save bank inforaation before making 

FCDE-FDO9 = temporary Horiz Select changes; eg, CALLing a routine in another 
bank. 

654A-6571 RESTORE STATUS Used internally to put all banks back as they were 

FDOA-FD3} before SAVE STATUS was CALLed. 

NOTES: This will undo any video aode changes sade since CALLing SAVE STATUS, 
as well as other port FF control bits, per TM4.5.5. Contains a BUG, which 

can be fixed per TM6.5.4 

6572-658) GOTO_BANK Perforas an effective JP to any bank. Does not pass 

FD32-FD4D any parameters, 

SAMPLE USAGE - PUSH address : 

PUSH Bank#/Horiz select (lo-true) 
CALL #6572 or #FD32 

NOTES: This routine acts like a JP, even though it’s accessed through a CALL 

658E-65CD Bank Switching Stack - An additional stack, siaulated in software. 

FD4E-FD8D Each time CALL_BANK is run, the return address and PRM_IN go here 

S5CE-65CF BS_SP - The Bank Switching Stack Pointer. Used to siaulate the Bank 

FDSE-FDB8F = Switching Stack 

6500-6688 CALL_BANK Performs an effective CALL to any bank, and contains pro- 

FD90-FE4B = visions to pass parameters, 

SAMPLE USAGE - PUSH the parameters (# of bytes is called PARAM OUT) 

PUSH address 

PUSH bank #/horiz select (lo-true) 
PUSH PARAM OUT 

PUSH PARAM_IN 

CALL #6500 or #FD90 

NOTES: Contains a BUG which aay be fixed per TN&.5.4. Also, PARAM_IN and 
PARAM_OUT represent the nuaber of bytes; not the nuaber of PUSHes 

6bBC-66E7 MOVE BYTES Used only as a subroutine to XFER_BYTES, and is intended 

FESC-FEA7 ~— to transfer bytes between banks when source and destination 

chunks overlap and the transfer is between two different banks, 

NOTES: Contains numerous BUGS which are not documented in the Technical Manual. 
Due to the programaer’s misunderstanding of the subtleties of LDIR and LDOR, 
and the differences in their usage, some counters are not properly updated, 
and some interaediate transfers can be sade to the wrong part of the stack, 
destroying critical information. Major bugs can be tolerated by putting hex 
73 at G6DF, and hex 72 at 66E2, Still, this routine can only be used in the 
LDIR node; fortunately, the LDDR case is not needed where this is used. 

66E8-6721 CREATE BITMAP Used only as a subroutine to XFER BYTES, and is 

FEAG-FEEL intended to produce a low-true “Horizontal Select® byte fay all 

the chunks involved in either the source or destination bank for 
a data transfer. 

NOTES: Contains undocugented BUGS. Due to isproper coaputation of first and/or 
last bytes in a data transfer, this @ay give an improper result, when the 
error in coaputation straddles a chunk boundary. These can be corrected by 
inserting at b4F3 and followings hex 0B, 3C,28 

6722-6814 XFER_BYTES An intelligent transfer routine to aove data between 

FEE2-FFD4 — banks, but also intended to allow transfer within a single bank, 

wether or not all the necessary chunks are enabled. 

SAMPLE USAGE - PUSH source bank #/dest bank # 

PUSH source addr 

PUSH dest addr 

PUSH # bytes 

PUSH direction ;0000 - like LDIR, FFFF - like LDDR 
CALL #6722 or #FEE2 

NOTES:Contrary to its description in the Tecnical Manual, this routine was 
intended to be able to do transfers between larger seaory areas than just a 
Single source chunk and a single destination chunk. The eentioned liaitation 
was probably intended to mask one of the probleas in this routine, Also, this 
routine does not relocate properly to high aemory. This routine requires that 
the machine stack be in its proper location in the RAM Resident Code. It was 
not intended to be able to transfer data into or out of the chunk that 
currently contains the RAM Resident Code, If the stack is nearly full, the 
transter will be aborted, without notifying the CALLing routine. A status 
flag, intended to perfora such a warning gets corrupted before coepletion. 
The Tecnical Manual docusents only one bug, but several changes are needed to 
get this working properly. Location 6722 gets 00, 672B gets 08, 676A gets SF 
(that one is the Tech Manual fix), 67C2 gets 2C, and 67FF gets 00. Because 
this code would normally be used to initialize expansion banks, it’s possible 
that this routine would have ta be fixed before they could be debugged. With 
these fixes, AF is no longer preserved, and A is now returned with a status 
code. It will contain 00 if the transfer was sucessful, and 01 if it was 
aborted, due to insufficient stack space. Because of the aforeaentioned and 
not readily correctable bug in MOVE BYTES, using this routine in the LDDR 
mode can crash the systea in some cases, The only tiae the LDDR sode aay 
really be needed would be certain times when the source and destination areas 
overlap WITHIN THE SAME BANK. This case does not cause the probles, so if the 
use of the LDDR sode is liaited to this case, there will be no trouble. 

6815-6823 GOTO_EXT A routine intended for use only during initialization. Does 

FFDS-FFE3 an effective JP (HL) to the EXROM. Would not work properly if 

expansion banks were enabled in chunk 0, hence its suitability 
only for system initialization. 


Unfortunately, the addition of bank switching caused a 
problem that most linkers can't handle; there are two blocks of 
code with identical memory addresses. This means that the Timex 
folks had to go back to the old method of assembling (and 
linking) the Home ROM code and the EXROM code in two separate 
batches, and then linking them by hand. For a program of that 
size, this is an incredible problem. Every time the code is re- 
assembled, the hand linking must be done over again! And a pro- 
gram this size would get reassembled a lot. This just begs for a 
few spots to get "missed", and they certainly did. 

We might expect to find these incorrect links where an in- 
struction in one ROM references an address in the other ROM. We'd 
also expect that the incorrect address will be nearly correct, 
since it was probably correctly linked once, but the addition or 
deletion of a few instructions somewhere will have shifted every- 
thing in memory slightly. This is, in fact, only one way that 
mis-linking can make our lives miserable. 

The earlier mention that some of the RAM Resident Code does 
not relocate properly to high memory is another example. You see, 
the EXROM contains a "relocation table", which is supposed to 
point to the various spots of the RAM Res Code that need 
changing. For example, the second and third bytes of a CALL in- 
struction contain a memory address that must be changed if the 
code being CALLed gets moved. 

Sadly, the programmers could have used labels in their 
assembly code to make the assembler produce a perfect relocation 
table. If we look at the end of the RAM Res Code listing (they 


call it. the fixup table) in appendix A of the TS2068 Technical 
Manual, we can see that they instead chose to figure the numbers 


Too bad. 


out by hand, and insert them directly into the code. 





Q*ber in action! 


APPOINTNENTS 
xx NENW *% 


JANUARY 198? 


SU NO TU WE TH FR SR 
A253 


A Enter appointnents 
B Vien appointnents 
C Print appointnents 
h Main henu 


43 £27 4-438 
11 12 13 14 15 16 1? 
18 19 20 21 22 23 24 
' 25 26 2? 28 29 30 31 





PRINTOUT APPOINTNENTS FOR WICH DRTEY 


¥xThe Desk COPYRIGHT 1986 BYTE POWER WRITTEN EY K BOLSUERTES 





SCORE : 66010 CHOPPERS: # # 
STOLEN PIECES:@ BRIDGE -4 





CONSTRUX IN ACTION! 


ST CLASS MAGAZINE 


= A major breakthrough for the T/S 2066, 


BYTE POWER is the ultinate 
is full of prograns, a real T/5 2066 owner’s drean. 


Another EXROM table that didn't get fixed properly is the 
address table that the Function Dispatcher uses to find various 
ROM routines. Some (not all) of the dispatcher codes marked 
"reserved" in the Technical Manual actually point to a routine, 
but are off by a few bytes. Note that the majority of dispatcher 


codes reference the Home ROM. We'd expect that they'd use Iabels_. 


in the Home ROM assembly to generate most of the table, and th: 
hand-patch in the addresses for the EXROM and RAM Res COde. Sut 


enough, the portion that points to the Home ROM is 100% correct, 
but the other two portions are a disaster. 


To be fair, the Timex programmers tried to.,set up the EXROM 
in such a way as to reduce the number of mis-linking errors. The 
various tables and blocks of code in the EXROM are spread around, 
giving each one room to grow without encroaching on the space 
allocated by the others. Each block begins (or ends) at a nice, 
even hexadecimal number, and the space after (or before) each 
block is filled with FFx or 00s. 

I've had several readers look at these gaps and give the 
fascinating suggestion that there may have originally been code 
there, which was blanked out prior to production of the ROMs. 
Since each gap bounds itself on a nice even hexadeciamal number, 
however, I must (sadly!) confess my doubts. Since each person who 
mentioned it also used DECIMAL, not hexadecimal addresses in 
their letters, I can see how this subtle, but important clue 
might have been missed. (C'mon guys! I said in Part 1 that we 
really ‘need to work in hexadecimal here. You gotta trust me after 
all we've been through! ) 

In any case, though we can't cover the fixing of the EXROM 
in detail, the following map should aid those who want to fix the 
tables, and make permanent changes to the bugs in the RAM 






BYTE POWER, a highly sophisticated 


ir conputerized nagazine on cassette. 


No longer will you have to type in long. 
fastidious prograns...dUST LOAD AND PUN? 


BYTE POWER is a software based magazine with over 130 prograns 
per year, nost of then in fast Machine Language. Prograns such 
as TALKING CLOCK, EASYuord word-processor, GRAND PRIX a 3D race, 
and SSP Conall Screen Painter) are sone exanples of the high 
quality prograns published in BYTE POHER Magazine. 


BYTE POWER brings you this quality progranning at a very snall 
cost, LESS THAN 39 CENTS A PROGRAM. based on 1 year subscription. 


Plus you get doftuare and Harduare reviews and tips to help you 
design better progranst 


been Lg RA Re POE Se 55 8 os 5 ccs <cociteeebsvccccs cee Sdenl 
6 MONTH SUBSCRIPTION C6 ISSUES)... 1... eee cece eee ee eo $29.99 
1 YEAR SUBSCRIPTION C12 ISSUESD. 2... ccc cece cece eee eo o $49.99 


U.S. FUNDS ONLY 


SEND CHECK OR MONEY ORDER TO 


BYTE POWER 
1746 MEADOWVIEW AVENUE, 
PICKERING, ONTARIO, CANADA LiV 366 











azine for the T/3 2066. Each tape < 



















*= CLOSE OUT SPECcrAltL «* 


Resident Code. 


EXROM Map 
RAINBOW PLUS INTERFACE 0000-0067 —- Misc. Housekeeping er 
0068-08E6 —- Cassette 1/0 : 
a ONLY $29.95 OBE7-ODAF —- eect to system initialization : 
(We’ve flowcharted most of this) : 
OW WHILE SUPPLIES LAST, YOU CAN GIVE | 0D50-0F42 - Video Mode Cason Ronetiae : “—s 
SUC Arae Ree Tae Rao ae | came Sree Ca te 
Me SAVE *, onto the stack. Routine at Block 
INTERFACE COMBINES ADVANCE SPECTRUM spelen 
EMULATION PLUS A SPECTRUM COMPATABLE this Putas ees.te CALL-a-Heee : 
4 ROM £3 ith the : . 
nee Comrie OL ON EO A | cc tray. En eens cares 
CALLS. Should be used only by the : 
COMPUTER, THERE IS NO NEED TO OPEN’ THE initialization code. : 
COMPUTER OR TIE UP THE CARTRIDGE DOCK. OFAS-OFFF - The block is filled out with zeros. -—~—~—-: 


THERE IS EVEN A SWITCH TO CHANGE MODES. 1000-1623 - Initial RAM Resident Code is copied 













from here. A short stretch of FFs Initial 
from 138E-13CF is the initial bank RAM Res 
ALL FOR ONLY $29.95 + $2.00 S&H sal taht ne aeace. AE 
TO ORDER : SEND CHECK, MONEY ORDER, VISA 1624-17FF - The block is filled out with zeros. -—---; 
OR MASTERCARD, TO = DAMCO ENTERPRISES | je00-1nrF - Not Used (filled with FFs) 
6&7 BRADLEY CT. FALL RIVER, MA. 02720 1COO-1CFF - Not Used (filled with zeros) 
OR CALL (617)678-2110 1D00-( ) - Fixup table for relocating RAM Res --~- : 
Code. Address values start at : 
1DOo. List grows UPWARD in memory. a 
1D7A-1EDB —- Unused space between tables. (Filled : 
with zeros) : 
unr ( )-1FFF - Address table for Function Dispatcher. : 


ACES f 
(198, EVTE POWER 


[MENU 






Starts at 1FFF and grows DOWNWARD in ExXROM 
memory. This table is also broken Tables 
into 3 sections; 1 for EXROM : 
services, 1 for Home ROM services, 
and 1 for RAM Res Code services (low 




















Hl AA memory addresses only!!!) Unused : 
OH GS Flowchart 7: . —— 
EVES} | woes iitiatize 6 RAM banky~ - SERS See ree ence ewe ta ae 
rg @ RAM bank) 
E || OnInT B 


X@ADD-XOAED- This was SUPPUSED to copy the 
interrupt handle- from the EXROM to the 
RAM bank. Un fortunately it Copies one byte 
too few, and the B ond ve gisters have 
su apped bytes on entry to this routine As 
2 vesulté, Zhe bytes ave copped FROM the 
RAM hank, To the EXROM bank. Se c€ 
actually doesnt accomplish Aahy thing. 

KOAEE/F -Point HL to SYSCON GZS chunks 
available for RAM (hi-teue) 

XA FO-X0AFR3° Set bit Dof SYSCoN G2. Tf we've 

here, there MUST be KAM in chunk @ 

OIF 4-XOIFb-Initialize chunk address pristes 

(DE register) to location DOSS 


9-Tnritislize chunk counter A veais 





Flowchart 8: 
Renumber banks according 
to their interrupt priorities. 


KOCFB-XPCFE - Clear MAXBNK. We'll increment for each bank 
OCFF~X PDOS-Poimt to SYSCON OO for the FIRST bank 


X9D6/7- Gel SYSCON DD & compare it to BG (TF, 
eenal f we 2 the end of the table) 


G1 xOp07/a-Fnd of table?  [D 


XOD@B- Point te SYSCON D1 -The bank nunba, 















te 


eliOSe 
HUNCERS 








XOAF9- Save chunk counteae (4 regis ber) 

XOAFA-XOBOl-Pornd DE te stat’ address of 
thenext chunk Cpreserves HL) 

X9B 92-YOBI3-Moves a byte From XYOBO7 to Firsé 








XOD Qc -X@D@E- Get SYSCON G4 & check bet 7. 
Thrs bit is only selif the bauk hasnt been 
Fenumbered et. 


QPOF/AD -H b beo renumb ered?) 


yte of new RAA bank chunk. 
CHARTS X OBI6-X9BI2 -Get MAXBAK. Duving imifializa biry K ODI-X Pde ~ Pont te SYSCON GO EK, NEXT bank 
EXAMPLE this ¢s the number of the bank were workring oa 
@ SALES X0B /9-YoB2S- This was supposed to take the XODI7-XOD4~Save the bank number 
o COST byte that was just tw wite, inte RAM and ODdIA -Powt te SY¥Ystow DO 
IN DOLLARS « PROFITS Gory that inte SYSCOWM 33. Un fortunately XDD (B-K ODID -Gel SYSCOW POE compare te Gt (ROM 


is 2 BUG! Al se (sucessfully) points Al LeStScono QUKODIE-Fs5 it D2 CROm pant) ? _—[) 
2150 XPB26-X OBZ D- Compare the contents of SYS GF 
1720 te XO8E7.THf they watd, there way be RAM herve. XODZ$-XOD23- Point to SYSCOW I7- Int. priority 
1626 XOD24-XOD2Z7-This will eventually ASSigu 2@ 
43e YY) X9P2E/- -pDo 4, natch? |) Priom ty) 
G 












> SES 
% 3 
pe: Es 
GsBoSormnhss 








ct copres tt Inte the Dock bank aud so 



















X9B 30-XOB43 - Move bytc from Xosde to first byte 
oF Curvent chunk of RAM bank. 
X0B44-XOBSS- Supposed to cop 
K4AM bank into SYSCOW G3. Ui.fi-t anately 
it coptes rt tothe Dock Leuk (Same BUG 
as above) Also Gucessfilly) pomts WL te SYSCON 03 
WPBS6-XOBSB- Pant HL back to SYS@N O2, and 
compare the byte that would have been read 
back Chad there been no bus) Lo byte af 



















CXOBSC/D -De the tcA7 [1 ————— 
|X@BSE-XOBI4- Weve found eqnothe— RAM chunk. 


Set the Zppropeiate bit sn SYSCOM OZ 


BIS - XOBC 


ho RAMiy this chane. 
: Oey, SCON D2 





WBCA~XOBL- Update chunk counter 2 See sf 
6&'s Bye thes we're done 


Chopep/e Are we Jone? [Y)~(RET4-~ _) 









X@D28-XOD2B-Pont te STSCOM 17 -~Tuk Prievy ty 
XODZC-KOpZF - Get the prrorid 

XSDLD-X9D2F - Save the prrorit 
X23 O-Point to Syston OP for NEXT bank 
X9D3!-Kon33- Ged Syscon @G kcompare Ul to Bo. 


ich mar Le cud of the table. 


CY |xXg034/e5 End of table? [AD 


XOD36- Point do SYSCON G1 
%OD37-XOD3BF -~Get SYSCON O41 Beleck LiF 
Th et if baukis not yet renumberel 


(W] XOD3A4/B Ts tt renumbered z1y) 
@D3C-KODH - Point to SYSCOW I7 


Flowchart 8 continued... 





Flowchart 8 
(continued from previous page) 






















XOP4Z Poin SYSCOW DD 
XbD43-X9D45-Gek it & compare to 2 (ROMba 





CA\X\ob 46/7 -Ts ika ROM bank 2 ‘say 
XOD48-XOD4D -Poiwt to SYSCON 17 2460 








XOD4E-BUGI( Should instead copy HL teDE 
This will lezve DE pointing te SYSHW OG 
XOP4F-X6D52- Point HL to SYSCON [7° ént priority 
Ons 3-Xopsé ~ Fut previ ous in terrugt Priority »B 
¥ODS 7/8 -Get-present int Prieeit & compare to B 


C}xoDs4/s New bank bas higher Prionty2|W/) 
XODSB-XGDE 3 -S2ve new bank & address & Prierity 


XDD bf-XODCA ~ Lncrement MAX BNK 
KODGB-XODLD ~ Get addy. of highesé priovity bank # 
PDE -Save new bank member ab that a4 dress 
XODGF-XOD8%- Timex's [esting says thes 7s 
Supposed bo pué the bayk # at location 
OoOG of the RAM bank. Tustead due fe 
a BUG jd uses the bank # asan 
address, and copia Fron, that address in 
the home bank to address Secep of 








2487 







24C0 













24EE 








yopg4-XODBA- Set MAXBNK to @ 
XOD8B-XEDI = Send DO to vegister CD- Fesets 
the Daisy Chain 
X oD92 -KUD98- Get address of fivst bank wuwher 
in the SYSCON table 
X 0099 A useless ins Buction, but rt would have been 
‘cect rt Were right before the tustvuction at XODIF 


















XOD9B-D — Lhcrements MAXBMK, and checks to see 
if that bank vumber exists. Returns wrth 
Cyal, PY yes Unfortunately it alse tors Za lis that 
Vember in the bank-- after we've carefully 
Venumbered them, al/. Weill fix that je 2 wrnats 
HL f Srepentbank 4 the Syscowtzble 


WVhcoape ~Does the bay ist? (Cye0 





Sime 
















ank humbe 
and instal) in the bank. Mote that if we 
get toths part of the program D cotacus 
A® left over freon the routine af XOBD!. 

X@DA3-XODAF Send PA bo vegist er CQ Advances 
the Daisy Chain- 

XODAA- XODAF- Point to the wext bank # in the 

SYScONW _tabtl 





A Chip OTT The Old Block 


As we said last time, there are many portions of code in the 
Home ROM that are blocked off, so they're never executed. If we 
wished to use the "Sinclair Interface One" method of adding a 
disk, microdrive, or other I/O devices, we'd leave these blocked 
off. However, this would require extra hardware to switch in a 
"superbank", at the right moment. Since the blocked off code has 
the ability to link to the normal expansion banks without such 


extra hardware, it may seem attractive to try to restore that old 
code to working order. The following table gives a good feel for 
what they are, and what they do. In each case, the routines are 
blocked by a JR, JP, or RET instruction. 


Would have allowed the execution of expansian bank code 
to OFEN a stream to a specially made channel. 


Would have CLOSEd all 14 streams & rebuilt the SYSCON 
table after the execution of the BASIC command 
"RESET k". The rebuilt table would have been a "cold 
reset", using the EXROM routine at XO9F4 (shown a long 
time ago in flowchart 4.) 

Would have performed a "warm reset" of the SYSCON table 
after the BASIC command "RESET". .This would have used 
the EXROM routine at XOC4C (not flowcharted). 

Would have run expansion bank code upon execution of the 
BASIC command "RESET # stream" 

Would have passed the information in an extended LOAD or 
SAVE command (ie, LOAD k "D",list of information") onto 
the stack, and then CALLed a LOAD or SAVE routine, 
perhaps for a disk or microdrive, in an expansion bank. 
This would have CALLed the routine at 2589, which is 
also never used. This is fortunate, because it tries to 
CALL an EXROM routine with a mis-linked address, and 
also has a RET command missing, 

This is part of the code that would have passed 
parameters from the BASIC commands CAT, FORMAT, MOVE, 
and ERASE. The blocking JF instruction, at 25E1, is 
where Timex deleted code to make room, as mentioned in 
the previous installment. 


“Let Us Recomsetruct Watsom” . 


An interesting item has been recently published in the Jan- 
Feb issue of the newsletter of the Long Island Sinclair Timex 
User Group. From its language and format, I suspect it's an early 
version of Timex's functional specification for bank switching! 
(They may have titled it differently, but that's the type of 
document it is.) Timex would certainly have had to make such a 
spec available to third party software developers. So, in hind- 
sight, it's reasonable that a copy should eventually come to the 
surface. 

Still, the person who "leaked" the document could come to 
some trouble for doing so. This may be the reason it was  sub- 
mitted under the pseudonym of "Dr. Watson". (I love it!!!) Well, 
whoever you are, Doctor, thanks a bunch. You've done a great. 
service to the cause. 

Because it's an early version, there are portions that have 
been superceeded by engineering changes in the machine. (See Part 
3 of this series, where we discuss the bank switching tutorial in 
SAMS "TS2068 Intermediate/Advanced Guide".) As such, its des- 
cription of the bank switching registers is not quite accurate. 
However, we do get a complete picture of the SYSCON layout, an 
idea of some of the peripherals Timex at least considered pro- 
ducing, and a description of the BEU. 

We also see how some additional tables of data might have 
been written in home RAM by expansion banks during the power-on 
initialization. (For Spectrum users: these seem somewhat an- 
alogous to the extra information in the "m", "n", "t", and "d" 
channels used by the Microdrives, network, and RS-232 ports on 
the Interface One.) Since these tables are a function of the ex- 


Now Available! “THE BEST OF SUM, PART II” 


Over 60 pages of program listings, reviews, hard- 
ware projects, hints and tips, and articles. Covers 
TS-1000, TS-2068, and QL. All are reprints from 
the last year of SUM plus a few that didn't make it 
into print before now. 


Articles include Building an EPROM Program- 
mer, Sprites on the 2068, Adding RGB to 2068, QL 
Word Processing, What's Available for TS-1000, 
and much more. Does overlap the “Special Issues” 


advertised to the right. : 
$795 postpaid 


Florida residents must add 5% state sales tax. 


The original “THE BEST OF SUM” is now in its 
2nd printing. 112 pages of articles going all the 
way back to the beginning of SUM — 3 years 
worth! 


$11.95 postpaid 


QL Special Issue (12/85) — *3.95 postpaid. 
TS-1000 Special Issue (5/86) — *3.95 postpaid. 


Everything! *20.00 postpaid 


FOOTE %%, SOFTWARE P.O. Box 14655 — Gainesville, FL 32604 904/462-1086 (6 pm - 9 pm EDT) 


12 














following a CALL at 25DE 


wo you needed more devices, you could plug ANOTHER BEAU 


—_ 


pansion bank software that doesn't exist yet, we can still re- 
design these as we wish. But it's still interesting to see what 
Timex had in mind. . 

The BEU was intended to allow an additional 4 devices to be 
plugged into the TS2068 (you're only supposed to plug two or less 
directly into the TS2068, according to the Technical Manual. If 
into the 
first, to allow a total of 7 devices to be plugged in. A device 
could have been a peripheral, or could have contained one or more 
expansion banks. A device containing peripheral hardware AND an 
expansion bank to control it is referred to as an "intelligent 
device", by the way. 

The list of device specifications (the ASCII characters that 
define a channel type) included the standard ones as shown in the 
Technical Manual, but also included specifiers for a Tele- 
communications device, a stringy floppy (like a Microdrive?), 
both floppy and hard disks, RS-232 and Centronics interfaces, an 
80 column printer (it's uncertain how this would differ from the 
Centronics interface) and a network. Also the letter "M" is 
marked as reserved. This is what Sinclair uses for its Microdrive 
channels, but this is a stringy floppy device, so the purpose of 
this is uncertain. 

The biggest bonanza from this document, however is the 
complete SYSCON table layout. As mentioned last time, the layout 
I gave was incomplete, and I began to give some corrections last 
time. A complete layout would not have been possible, because the 
ROM routines don't use all the SYSCON locations, and there's a 
conflict in various code locations as to how a certain set of 
initialization code is pointed to by the SYSCON table. As it 
turns out, I chose one possibility and Timex intended the other 
(curses!). 

Furthermore, I speculated that certain expansion banks might 
contain complete replacements for the system ROMs. This’ means 
that certain "reserved" memory locations would contain JP in- 
structions, so that instructions like RST 8 and RST 10 would work 
under these ROMs. Timex seemed to have no intention of doing 
this, but it's still possible, as far as I can see. In any case, 
here's the Timex SYSCON layout for an expansion bank, along with 
my original comments: 


00 O1=ROM O2=RAM OO=Inactive 
O1 Bank #. MSB is set if not yet renumbered 


The following is copied from 0000-0015 of ROM expansion banks 

02 For RAM — Chunks available - High true 

For ROM — Channel specifier, if this bank controls a channel. 
This will be an ASCII character, and the initial- 
ization software resets bit 5, insuring that the 
letter will be uppercase. 

03/4 Address of OPEN routine for the channel. 

(Alternately, 02-04 could have a residual JP instruction, which 
does no good to the SYSCON table, but allows RST O to work in 
the expansion bank, since the JP is also at location 0000 of 
that bank.) 

05/06 Address of CLOSE routine, if the bank controls a channel, 
Call with RAM Res Code with PRM_OUT#=2, and stheam 
number on the stack. 

07/08 Timex called this the address of the SELECT routine. It 
could have been used in initialization, and to 
attatch the current channel to this bank (7?) 

09/0A An 1/0 device INPUT routine address 

OB/OC An 1/0 device OUTPUT routine address. 

(Alternately, OA-OC could have contained a residual JP that 

would have been intended to allow RST 08 to work in the 

ROM bank) 

OD/OE Address of Disk Command Handler routine 

OF/10 Addr of device interrupt handler (92 bytes) 

11/12 Addr of device initialization code (cold start) 

13/14 Addr of device reset routine (warm start) 

(Alternately, 12-14 could have contained a residual JP that 

would have been used in the ROM bank to make RST 10 work.) 

15 - Device type -- Bit 0 = 0 if bootable 

= 1 if initializable 
Bit 1 = 0 if non storage device 
1 if storage (disk commands) 

16 - Boot up priority. Low # = high priority. Home bank=80 

17 - Interrupt Priority. RAM banks get 255. ROM gets lower 
value, which means higher priority 


NOTE: The Timex document gives this list as ROM addresses, rather 
than SYSCON entries, as given here. The SYSCON 
displacements must always differ by two from the 
ROM addresses. This difference is not an error. 


These are the items of real importance to those who'd want 
to implement extended bank switching on the TS2068. Other items 
in the document make interesting reading, however, and you may 
want to contact the L.I.S.T. group to see if back issues are 
available. 


Fanal Thoughts 


Throughout this series, I've made comments about the various 
bugs and defficiencies we've uncovered in the TS2068. While there 
is no denying that it does have numerous problems, we should see 
them in the perspective of the problems that likely faced the de- 
signers. Let's also not forget that the initial release of a 
computer will uncover many new bugs as a huge group of users 
tries things its designers hadn't condidered. (Wes' Second Law: 
It's unwise to buy Version 1.0 of ANYTHING.) 


IO 


Remember that the TS2068 is a radical redesign of the Sin- 
clair Spectrum with many new functions wedged in that its’ or- 
iginal designers never intended for it. It almost had to be 
forced to be able to do some of them. It was developed during” a 
time when the home computer market was declining, and it ran way 
over schedule. It's engineers would have spent late nights in the 
lab, while getting called on the carpet during the day. 

The mistakes we've seen are typical of the kinds I have 
observed (and even made!) in my many years as an engineer. 
Usually, they get fixed, but sometimes, there just isn't time. 
There's no reason to expect that those responsible for these bugs 
were not simply good engineers given a huge job on an impossible 
schedule. We can be thankful that they've accomplished what they 
have. 

Writing the last article ina series always brings about 
mixed feelings. It's nice to see a job finished, but it's also 
like losing and old friend. I hope you'll continue to let me know 
about your own TS2068 projects...particularly any that deal with 
bank switching. I've made a lot of friends here, and I wouldn't 
want to lose contact. 

I've been reluctant to do more than hint about the bank 
switching hardware that I've been playing with, all this time. 
The reason is that I wasn't satisfied with it, and was sure that 
many of you could provide a better way, given the proper food for 
thought. (And every now and then, I'm right; you've done spec- 
tacularly. ) 

For the record, I've modified the two low level communi- 
cation routines in the RAM Res Code so that they instead communi- 
cate their data to a separate (and very small) Z80 computer. The 
second computer simulates most of the registers, and controls the 
horizontal select bytes for the expansion banks, which are other- 
wise controlled by the TS2068. This works, but it is a bit more 
complex than I'd like. If you'll look back over this series, and 
see my scattered hints about the virtues of changing the two low 
level routines (READ BS REG and WR_BS REG and WR BS REG) you may 
see the method in my madness. le irs 

Well, thanks to many of your suggestions, it now looks 
possible to modify: these two routines so that they do all the 
simulation and control functions in their own limited space, 
under complete control of the TS2068, negating the need for a 
separate processor. This is still in its early stages, but ex- 
tended bank switching could become much simpler, in the coming 
months...we'll see. 

As I:said, I don't want to lose contact. Please feel free to 
write to me: Wes Brzozowski, 337 Janice St., Endicott, NY 13760. 


LIST and 
RUN the 














fie MUSIC DESIGN ‘edee’ SRE 


Ano) 


.  aaeememmer i et” Tugger i commana 


C9 60 62 620 20 69 6 6 6 Be 


HERE IT IS!! 
A REAL MUSIC PROGRAM FOR THE 2068! 


You can adjust the volume, tempo and duration of the beat 
and melody. You can record as you play and play it back 
later. You can string several tunes together and play then 
back continuously. You can save the program with the tunes 
you have written or entered. Room for over 100@ notes and 
pauses. Over 2 1/2 octaves! 1@ chord keys! 

If you want, you can use your own music books to enter 
songs of your choice. 


Almost like having your own sythesizer on your 2068! 
Nothing better for the price! 


OLY $19 .95+82 SH. 


EXCLUSIVELY FROM: 
RMG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OR 97645 
503/655-7484 


ThA WSD9UP Ca, 
Delivers! 


HHHRRHHRRRHRR AH HRHHRHAHH HHH HHH HAR 


DO YOU HAVE PROGAMS ON CASSETTE THAT YOU WOULD LIKE TO 
HAVE ON YOUR AERCO FD-48 DISK? 
WHAT WOULD YOU PAY FOR A PROGRAM THAT WOULD MOVE THEM FROM 
CASSETTE TO DISK AUTOMATICALLY? 


Well we are here to announce just such a utility! 
GET READY! HERE COMES---~ 


SZK EXPRESS 
Another GREAT utility from the author of such titles as: 
_ KRUNCHER, KRUNCHER 1000 AND TRACER 
This time we bring you EXPRESS, as in FAST! 
We guarantee that this utility will save you a lot of time 
transfering programs to disk. 


So nee to use! All you do is boot up the peegeae and 
press PLAY on your tape recorder and watch the program 
LOAD and then automatically MOVE to the AERCO disk! 

We couldn’t make it any easier! AND THAT’S NOT ALL! 

This: program uses ABSOLUTELY NO MEMORY! 
Once the transfer has been made, all that is needed is 
for you to reboot them, change the SAVE and LOAD commands 
and re-SAVE them in an auto-run sode. 


The program includes a very good header reader and catalog 


function. It is just the first of many programs to come 
that utilize the bank-switching facilities of the 2068. 


A GREAT ADDITION TO YOUR FD-48 UTILITY LIBRARY! 


THE PRICE? 
ONLY $14. 9S+$2 SH. 


EXCLUSIVELY FROM: 
RMG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OR 97045 
1655-7484 


RHHHHRARHBRAAH HARA RHR HHRMA 


TOURIST C 
Delivers! 


shojojcicjojjoiciatc jojotojajojojofojojojofapyojofcjojapcfojolciojojojopayciopopajajalopajajojopojopopcyapopopopojopcyop sp apcpopopopoy stot op S| of Off 2} o} of} 2} 943] 9} 3424 s]9} 2} Shc} 2-4} aatay aot] 


Let TOURIST C What HOT Z cannot. 


1 OS OOPS OH OH PEDRO REESE EH EESORED OEE EE EEE OEEE SES ESTE OEESOE HEH ESSE EEE ESSESES ES ESE SES SESE EEE EES SEE EES SSESEEEESSEEESEEEESEEDESESESE® 


| 
Se eee ee BH shown when that is what the TS2@68 


Bank#255 Grp:SYNTWO Rtn: PASSEM 


65278 'BSonkteoSd /HALE=O1L11111 
25753 | [RAONK_CNndsr2].,cexr0n 
(Reothy B 3987) 
65238 'RonktoSsS/HsLL=O8000006 
25753 |! (6dnK_endszre), .HONE 

! The AL on toomple of oni of The forricoaded prtutnting Lar 


OO OPOOS HOT EDE SER OH OER OSE HORE SESE EEEEESE EHS EEEEEEOE EES DORE EEE ENS EERE OEE RE EEE OES E SEES ESOS ROSES EEEee 


9657 Q1FEFE LD BC,NN 

9662  Cp9964 CALL NN ¥ 
9663  CDO92F CALL NN 3649! (PABST 
9665 @100FF LD BC,NN 

9669  CD9964 CALL NN 


Bank 


Inndeing of porometene from BASIC etotementc. 
6C 


9672 O6CF B,N 207: CAT : 
9674 180A JR +12 9656 

9676 8600 LD B,N 268: FORMAT : 
9678 1866 JR +8 S686 

9688 @6D1 LD B,N 269: HOVE : 
9662 1862 JR +4 9635 

9684 86D2 LO B,N 218: ERASE : 
9586 co8923 CALL NN 18377 

9659 2686 JR NZ,+8 9597 

g6S1i Cb6925 CALL NN 9577 

9694 Chdd1iB CALL WH 6350 

9697 C36725 JP NN $575 

BankesSsS Grp: SYNTWO Rtn: ERROR J 
9575 CF RST 8 ERROR 

9576 i2 DC Invalid I/O device 


1 TRA bonrricodt prtmintis uding 005, but ON ERROR con comi it. 


e200 Grp: SYNTUO Rtn: BADKEYS 


Tourist C presents a disassembly 
in a form you can USE! Decimal is 


requires for input. Hexadecimal 
i5 used inf places where it i5 the 
better choice. Some redundancy is 
achieved. Both forms often show. 


Relative branches show offset, 
code byte and destination. 


Error calls give the exact error 
message and code byte. 


Catculator calls Show the routine 
in uninterpreted byte code. 


WHAT HORE COULD YOU ASK? 


You could ask for a data-base 
filing system. You got it! 

You could ask for a uUnmaversal 
printer interface. You got it! 

You could ask for interpretation 
of code bytes. You GOT it! 

You could ask for titling and a 
way to jump around. Guess What? 

You of2o0 get "SPY"! { Ah, ,well... 


Did I mention..perhaps I..YES I 
really Should. NO RELOCATION! 





What you see above is an unretcuched disassembly prepared by TOURIST C, The comments and emphasis of the titles were added by 


a word promesser from the database file generated by TOURIST C, What goad is 4 disassembler if you can’t make notes? Qs you 
Can see, getting down to the business Gf working With machine code is never just a matter of printing cut all the raw data, You 
faad better, and deseme it, TOURIST C gives it to you, The fact that TQURIST C bank-switches hes nothing to do with skisping 


on the essentials, What it can show you in other banks is gravy, 


ee nee 


GET IT! TOURIST C OrdergTS25PY8n8 $32.58 + 1,58 SéH 








a, 


Praifit tecsere. 

by 

C* Lemke Software 
Deve lopment 


Pixel 


Pixel Print creates Text and 
Loads Graphics for Newsletters, 
Magazine Columns, Letters, etc, 

Example: LOAD GRAPHICS 


RRA LEA 
fasece ae 4 
(Onmememasiomc ‘A ueusemeoumrsome 


ee 
Resear gerd THE 


\ POINTS 
“4 


~ 


This GRAPHIC Was created using 
the PIXEL SKETCH and GRAPHIOS 
Editor ved to demonstrate its 

very powerful editing abilit ee 


Pixel Print also has many very 
powerful functions... like pixel 


Shift for precision layouts! 


nYe| Driqt Stet ete HS 


OF FONTS & SIZES 


Pixel Print Will print with the 
edad Thermal Printer or most TBM 
Of EPSON compatible .wereze 


PRINTERS. 
Py) vo 
LAE 


Print 15 compatible with 
the TASMAN, AEROO, and Aa CPL, 

















ie | Q2= 
Get your PIXEL PRINT. Pe 
id ' wm FPO 
ae Sa rftumar Ce r< eels 
2Gidd White oak, “Wichita Ks 6ySe7 


Renew Your 


Subscription Today! 





ge \ ay 


Turbo Esprit 


Michael E. Carver 





HIT-CAR CLOSING IN! 


Durrell has done a decent job of providing an inexpensive means 
of driving one of the finest sports cars produced, the Lotus 
Turbo Esprit. To add an extra dimension to the simulation, Turbo 
Esprit is also a game of “cops and robbers". Actually, it isa 
game of “cop and drug smugglers”. The plot of the game is to 
chase down four drug-runners and their armoured car supplier. 
The action takes place in one of four different cities. A city 


must be chosen upon loading, and to try a different city one must 
reload the game. 


The display is similar to Durrell’s Combat Lynx (a combat 
helicopter simulation). The screen is divided into two sections 
-~- the dashboard and the playing field. Once again, the player’s 
vehicle is seen on the screen from a view point just behind the 
car in a S3-dimensional world. The 3-D effect of the city 
landscape is effective, but a little jerky while driving at 
slower speeds. The car is, as one would expect, a right-hand 
drive ala England, and the city streets are laid out to be driven 
on the left-side of the road. This took quite some time to get 
used to, especially when making left or right hand turns. The 
city is made up of various 2 to 6 lane streets with a number of 
one-way streets. Some of the hazards encountered, while cruising 
the city, are pedestrians crossing in crosswalks, potholes (which 
are set off with barricades), and workmen on ladders, which 
extend into the street. Of course, what driving simulation would 
be complete without lane changers, who don’t use their turn 


signals? Yes, the cars driving through town have operating turn 
signals. 


Your car is equipped with a._gun, which can be fired at other 
cars. Drug-running cars can be stopped by shooting them or 
continually rear-ending them. Points are scored for apprehending 
the drug cars, with a higher score provided when disabling the 
car by rear-ending it. There are penalties for ramming innocent 
cars or running over pedestrians. You are provided with four 
separate cars, as your car can be demolished by crashing into 
other cars or walls. It is also possible to lose a car when shot 
by one of the cruising hit-cars. One also scores points by 
taking out the hit-cars. There are also various gas stations 


which are needed when the fuel gauge gets low or your engine 
develops a misfire. 


A map of the city is available {on the screen), marking the 
locations of gas stations and drug cars. There are various 
levels of play which effect the speed of the cars and the number 


of times they must be rammed before they submit. Control is via 
keyboard (which is user-definable) or joystick. By being able to 
define the keys, control by keyboard is easy and responsive. 


As a simulation, the game has a good “feel", (especially when 
taking corners too fast). It is great fun to re-enact some of 
the great chase scenes from the movies (Bullet or the French 
Connection), by driving on the wrong side of the road to get 
around traffic jams, running red lights at busy intersections and 
dodging pedestrians. The plot and action of the game can get a 
little old-hat. It is not a game that I think one will get 
hooked on and forget to eat or sleep, but is great fun to pull 
out once in awhile and pass a few hours with. The action does 
not seem to slow down with the number of active objects on the 
screen, though it does suffer attribute bleeds. Also, one can 
occasionally get stuck, because some idiot driver went down a 
One-way street the wrong way. 


Turbo Esprit is available from Curry Computer for $16.95. 


zl 














PROGRAMMING CONCEPTS 


The following article deals with programing on a 
Sinclair ZX81 (or TS1000). It is just a portion of a 
large document, with the remainder to be published in 
the next issue of TDM, along with a program listing. 
The listing is a game program, "ZX81 TIC-TAC-TOE", which 
will serve as the chief example and will be discussed 
extensively. If readers would like to get a "head 
start", a complete listing of the program, declarations 
and array content are available for $6.20 ppd.; or a 
cassette is a available (nonlistable) for those who 
don't want to key in the program, for $12.00, from the 
author. Albert F. Rodriguez, 1605 Pennsylvania Ave. 
#204, Miame Beach, FL 33139. (Foreign buyers add $2.00 
for the cassette, or $1.00 for the listing). 


(con't from last issue) 


From this observation I deduced that it would be 
prudent to locate my subroutines, as often as it was 
practicable, below and as near to the place that they 
have to be called from in order to acheive an optimal 
MC/PS ratio. This technique can be best implemented, 
given a program that is relatively as multi-functional 
as is mine, by using what I call: "drivers". (For this 
term, but not the meaning given to it below, I am 
grateful to Mrrs. Frank L. Friedman/Elliot B Koffman, 
Problem Solving andi Structured Programming In Fortran, 
Addison-Wesley Publishing Co., Inc., 2nd Edition, 1981, 
Page 299.) 

A driver is similar to a "main program" (to learn 
about the concept of a main program see the chapter on 
Subroutines in the User Manual). 

A driver calls one or more subroutines (or another 
dciver(s))*within an overall program in that it is 
actually a suproutine that may called by a main program 
(e.g., see the driver routine Game in my program, which 
is called from line aa9 and consist of lines 7001-7011). 

There should be only one main program within an 
overall program, but there can be many drivers within an 
overall program. The unique value of a driver is that 
it allows a subroutine or another driver, far below in 
the overall program, to be nearer to the actual place 
from where it is being called within the overall pro- 
gram. And this, indeed contributes to a better MC/PS 
ratio. 

The proceedural rules derived from structuring 
effeciently as possible) the main program (see lines 
112-120), drivers and subroutines (see Declarations 
below for exact line numbers) within my overall program 
are, for convenience sake, referred to as "Rules of Top- 
Down Design," and can be summarized as follows: 


(as 


1. A main program is placed immediately after the 
program's name and any commands/initializations, 
if any, that appear at the beginning of the in- 
struction area. 





by Albert F. 






Rodriquez 


2. A main program begins with either 
routine or a driver call, and it ends with 
statement. 

3. A main program calls either drivers or sub- 
routines; it best calls itself with a GOTO state- 
ment. 

4. A driver or subroutine are located best when 
they are below and nearest to where they are being 
called. 

5. A driver or subroutine are located, in an over- 
all program, in the order that it is first called 
by: a main program or another driver. 

6. If a driver and main program bothcall the same 
driver or subroutine , then, this same driver or 
subroutine is located in the overall program in the 
order first called by the main program. 

7. A driver calls either one or more drivers or 
subroutines. 

8. A driver or subroutine should contain at least 
one RETURN statement. 

9. A driver or subroutine best calls 
using a GOTO statement. 

10. A subroutine, to be considered as a subroutine, 
must not contain either a driver or another sub- 
routine. 

11. Both a driver and subroutine are best called b 

a GOSUB statement unless they each call itself. 
12. Always use the smallest line number possible 
when writing each line of a program. 


a sub- 
a GOTO 


itself by 























So far I have been elucidating some of the pro- 
ceedural techniques used in writing and structing my 
program. This presentation, howerver, would be in- 
complete without an explanation of what each particular 
section (form top to bottom) of the overall program does 
and why it was written. It is toward this end that I 
dedicate the rest of this work. 

To clearly know what is being discussed next, the 
reader should have nearby a copy of the program list and 
its declarations (see below). The actual data stored 
within certain arrays in the variable store is not 
necessary to understand what follows. (A complete list- 
ing of the program, declarations and array content are 
available for $6.20, ppd, to whomever may decide to key 
in this program themselves rather than purchasing it in 
cassette form for $12.00. Foreign buyers add $2.00 more 
for the cassette and a $1.00 more for the listing and 
materials. ) 

The programm, on tape, is not listable on the 
screen. This precaution was taken so that a user would 
not accidentally disrupt the program if’ he/she happened 
to gain access to the code area of the program. To 
avoid reloading the program a user, whenever he/she has 
access to this area, should key in GOTO 7 to restart the 
game .(see Profile sheet for instructions about how to 
stop and restart this program). No-mony—back-—guarante 
are the terms applicable to whomever buys this progre 
in cassette form or not. 


More of this article next issue. 








~A” 








ZX81 Data Acquisition Module 


PART if 


By 


Tim Stoddard 


As promised last issue, we'll be trying our luck at 
building a digital to analog converter (D/A for short). 
I also got to thinking (a sometimes dangerous activity). 
What's the use:of all this fancy A/D and D/A stuff with- 
out some reference to time? For instance, in robotics, 
you would send an analog signal to a motor for a 
"specified time" to move, say, an arm or leg. You could 
use timing loops in the software, but that is inherently 
inaccurate. What is needed is a REAL-TIME CLOCK. So, in 
this issue we will be constructing a Real-Time Clock in 
addition to the D/A converter. Although the Real-Time 
Clock is on the same board as the D/A and A/D, I de- 
signed the clock with it's own selection logic, so if 
you want to use only the clock, it could be done very 
easily. 


D/A CONVERTER 


Schematic #1 diagrams the circuit. IC19 (74HCT374) 
was shown last issue in the A/D circuit as an optional 
port. We will be using this port to supply the D/A con- 
verter with it's 8-bit byte to be converted to an analog 
voltage. IC20 (DAC 800) is the workhorse that does the 
actual conversion. It comes in many variants (DAC 
800/801/802). They differ in conversion errors and max- 
imum temperature range. For our purpose, any of them 





WR 63 
From IC2 
Pi) Be 





sn— FoR 
ouT ~ Fé 






~Svars 
+ lug | Schematic 1: 
ps D/A Converter 


rcé 


will do. In fact, my prototype uses the most inaccurate 
(DAC 801=full, scale nonlinearity of .39%). I don't think 
I'll complain about .39%! IC2l1 (741) converts’ the 
"current" output of the DAC 800 to a voltage output and 
also acts as a buffer. The one curve ball that did come 
up while I was designing this was: the DAC 800 and it's 
variants use THREE supply voltages! I strongly dis-like 
anything other than “plus five volts", but in order to 
bridge the digital and analog world, we'll just have to 
grin and convert it. Anyway, the DAC 800 needs +4.5 to 
+18, -4.5 to -18, and a reference voltage for the 
current switches. IC22 (ICL 7660) converts the +5 volt 
supply to -5 volts for both the DAC 800 and the 741. I 


used this approach rather than an external power supply 
because, aS it is, my bench is already cluttered with 
power modules. The one thing we don't need is another 
power module hanging out of the wall! 

The DAC 800 works by taking the input byte, and 
then using each bit to switch a binary-weighted current 
source. For instance, bit 7 represents decimal 128, or 
half the value of the input byte. When this bit is a 
one, the current switch attached to that bit in the DAC 
800 will supply enough current to generate half of the 
reference voltage via the 741 op amp. 

Before wiring up the circuit, you'll need to decide 
if you want "unipolar" or "bipolar" (unipolar = Ov to 
+5v,; bipolar = -5v to +5v) output. Then ground pin 3 of 
the 741 and pin 2 of the DAC 800 directly. for unipolar 
operation, or for bipolar operation, through a 2.2k 
resistor. If you do decide to go with bipolar operation, 
use 1% resistors for the two 2.2k's attached to the 741 
op amp. These, can be purchased at Radio Shack as part 
no.271-309 for $2.49 (actually a package of 50). This 
will improve symmetry. After wiring up the circuit, a 
single adjustment should be make. Output 255 decimal to 
the DAC 800 port; in our case this is port 63H (use the 
BASIC/MC program below). Next, adjust the full scale pot 
for the desired full scale output. NOTE that the current 
switches need about 1.5 volts to switch, so full scale 
output should be 1.5 volts LESS*than the supply voltage 
to remain linear. I set mine up for 2.56 volts...this 
then gives .0l volts per count...an easy number to work 
with. For example, sending decimal 100 to the DAC 800 
port will cause the DAC 800 to output via the 741, 1.00 
volts, or if you send decimal 197 to the port, the 741 
will output 1.97 volts. You can see how easy this is to 
work with. This of course, assumes unipolar operation. 
Bipolar operation would give an output voltage range of 
-2.56 to +2.56 volts, and increase each count to .02 
volts. 


The ML routine to write the port is very easy and follows: 


16514 862 00 LD A,n ;load A with data to output 
16516 211 99 OUT 63,A ;output the data to DAC 
16518 201 RET ;return to basic 


To use the routine simply POKE the above MC routine 
in a REM statement, then within the BASIC program, POKE 
the desired data byte to output into location 16515 and 
then execute the routine. Here is a sample of the above 


utine: 
ie 5 REM ****k <== Poke the above ML routine here 


10 PRINT "ENTER OUTPUT DATA” 


ipotR 
20 INPUT D 
BirneAak 30 POKE 16515, D 
40 RAND USER 16514 
50 GOTO 10 
REAL-TIME CLOCK 
This part of the project is perhaps, the most 
useful. It can be constructed outside the DAM board 


project and used separately. Everything from games in 
"real-time", to timed control of BSR modules in the home 
can be accomplished using this clock. 

The circuit is very simple and also features a bit- 
addressable port. IC23 is a Programmable Peripheral In- 
terface (or PPI for short). It replaces three 68-bit 


ports and selection logic, and is fully programmable. is available from JDR (holder $1.95; battery $3.95). The 
All three ports can be programmed as input or output and trimmer cap on the clock is available from Radio Shack, 
in the case of port C can be programmed as a bit- as are most of the other passibe parts. The inverter 
addressable output port. Fortunately, it is also CHEAP used to invert the RESET signal off of the TS/ZX buss, 
($1.69 from JDR). IC24 is the actual clock chip and is a is an unused section of the 74HCTO4 in the A/D cir- 
MSM5832 ($2.95 from JDR). The crystal is a 32.768KHZ cuitry. The pull-up resistors are needed because the-——., 
unit and costs $.95 (also from JDR). IC25 does our I/O MSM5832 is a CMOS device where the 8255 is not. 


decoding and is the familiar 74HCT138. Note, you can The software to use the clock is a little more ~* 
also use the 74LS138, but it will consume more power. I complex than we have done up to now, due to the use of 
HIGHLY recommend using the battery back-up, unless of the 8255 PPI. However, it's nothing that can't be over- 
course, you want to set the clock each time you "power- come. Generally what we need. to do is configure the 


up". A nice lithium coin-type battery holder and battery three ports, then send the appropriate data to each of 
the ports as needed. Looking at schematic #2, you'll 
note that we use two of the ports for the exclusive use 









TEx BUSS Fe7 He of the clock. Port "A".is used to send the clock reg- 
etic: Ee ister address and four control signals to control the 
fa Aux BrT - AbbRESSABLE clock. This port then will be used to send data to the 
if PORT clock only. Therefore, we will configure this port as an 
pe OUTPUT port while reading or writing the clock chip. 
® S| :- Port "B" on the other-hand, will be used to both send 
iz 36| oz reg 2 re and receive data to the clock chip. Therefore, we will 
configure this port as either an INPUT or OUTPUT port 
D? 27] p depending on the operation being performed on the clock. 
De 2| 8255 45 Port "C" is not used by the clock and can be configured 
os 29 Ge for your particular use. The 8255 has four possible 
D4 30} : registers that can be addressed; one for each of the 
D3 au: three ports and one that is used to control the 8255. 
Da = . The following Table illustrates the register addresses 
Di as used in the DAM board. 
vs SH ss 8255 8255 Z80 Z80 
== 3 # REGISTER ADD EX PORT# DEC PORT# 
RET —d Sasser : 1 Ee 0 : 53 83 
B 1 57 87 
A3 Cc 2 5B 91 
A2, CNTRL 3 5F 95 
¥ There are actually two MC routines for this clock; 
Ik one to set the clock and one to read each of the MSM5832 
4 —K registers. All executable code is shown in decimal form 
wt : Since this is the most common way that MC routines ATC es 
A? : entered. 
om Pe pee . _ The following is the "jump table" for accessing the 
AS ya: i ten Port various routines to use the MSM5832. The table loads the 
At address and READ control signal for the MSM5832 into the 
Z80 'H' register and also loads the digit MASK into the 
z80 'L' register. The MASK is used to remove the unused 
bits from the particular MSM5832 register we are reading 
HHHAHHHRHHHHHHHHRHHHHHHHHBHH (each MSM5832 register is a 4 bit register). 
16514 01 201201 JP $---- ; Used in part 3 
BACK BY POPULAR DEMAND! ! 16517 ou ot JR $5B ; jump to ak reukaiee 
HERE IT IS! ONE OF OUR BEST SELLERS! 16519 33 15 44 LD $2COF ; set-up for YEAR10 
16522 24 68 JR $44 ; get YEAR10 digit 
SEKTOR 2068 16524 33 15 43 LD $2BOF ; set-up YEAR1 
FOR THE FD48 USER 16527 24 63 JR $3F ; get YEAR1 digit 
16529 33 1 42 LD $2A01 ; set-up for MONTHIO 
Finally! A full-featured sector editor for use eres Soe ae aeeas LO aes aaa 
with your 2068 and AERCO FD48 disk system. 16537 34 53 JR $35 ; get ps Et digit 
Very ae iy Fae egg you 16539 33 3 40 LD $2803 ; set-up for DAY10 
WOULG NOT expect a 15 price? 16542 24 48 JR $30 ; get DAY10 digit 
. : 16544 33 15 39 LD $270F : a Se for DAY! 
Some of the features included are: 16547 24 43 JR $2B ; get DAY1 digit 
READ DISK SECTORS - WRITE SECTORS - CORRECT SECTORS 1oaey a ie i SObrup s0r" Fane 
DELETE/ERASE FILES - COMPARE BLOCKS ~- COPY SCREENS — oS 7. poGet, VERE er 
TRANSLATE IBM CLUSTERS - MSDOS (2 VERSIONS) pe a a es 
- WORKS WITH RP/M AND MORE! 24 33 JR $21 ; get HOUR1O digit 
16559 33 15 36 LD $240F ; set-up for HOUR1 
. ; 16562 24 28 JR $1C ; get HOUR1 digit 
All of this at a price that all FD468 users can afford: 16564 33 7 35 LD $2307 ; set-up for MINUTE10 
ONLY $15. O@+2ph 16567 24 23 JR $17 ; get MINUTE10 digit 
16569 33 15 34 LD $220F ; set-up for MINUTE1 
Available on 5 1/4° disk or cassette. 16572 24 18 JR $12 ; get MINUTE] digit 
16577 24 13 JR $0B ; get SECONDS10 
. 16579 33 15 32 LD $200F ; set-up for SECONDS1 
AVAILABLE EXCLUSIVELY FROM: 16582 24 «8 JR $08 ; get SECONDS? digi 
16584 33 12 37 LD $250C ; set-up AM/PM/24 f: j 
RMG ENTERPRISES 16587 24-3 «SR $03 | get AW/PW/24 flags 
1419 1/2 7TH STREET 16589 33 4 40 LD $2804 ; set-up LEAP flag 
OREGON CITY, OR 97045 ; 
503/655-7484 ; This routine leaves the clock digit in the BC register for 


; use by the BASIC progran. 


HHHHHHHHHHHHHHHHRHHHHRHRHHH = 


a ea ee 
a ne a a aaa ee 


16592 62 130 LD A, $82 ; set-up PA=out, PB=in 16610 33 20 65 LD HL,$4114 ; load HL with add of 
16594 211 95 OUT $5F,A ; write control register ; variable to search for 
16596 124 LD A,H ; write add and cntrl 16613 34 22 64 LD ($4016),HL j; also put it in CH ADD 
16597 211 83 OUT $53,A ; to clock via PA of 8255 16616 205: 28° 17 CALL $YiiG ; find variable routine 
16599 219 87 IN A, $57 ; read clock digit from 16619 218 75 13 JP C,$0D4B ; 1f variable not found 
{=PB of: 8255 ; ERR2 
alee? 165 AND L ; mask off needed bits 16622 35 INC HL ; point HL to var length 
{ 2 79 LD C,A ; Save clock digit in C 16623 oe ea LD A,il ; compare length to 11 
03 6 0 LD B, $00 ; clear B 16625 190 CP CHL) 

16605 62 0 LD A, $00 ; turn off add and cntrl 16626 40 2 JR-Z,2 ; jump ahead if=11 
16607 2124= 83 QUT $53,A ; to clock via PA of 8255 16628 207 RST 8 ; if not=11 generate an 
16609 201 RET ; return to BASIC 16629 141 ADC A,LCINV. E) ; ERRE 
; 16630 35 INC HL ; point to 

* ; 16631 35 INC HL ; begining of string 

2 ;This routine will set the clock from a BASIC variable called 16632 12 LD B,12 ; transfer countt1 
;D$. The variable MUST contain 11 digits as follows: 16634 62 128 LD A, $80 } program 8255 for 
; 16636 211 95 OUT $5F,A ; PA=out, PB=out 

s ; "YYMMDDWHHMM” 16638 120 LD B,A ; transfer count is also 
; eh obs Sok ee ; used as clock address 
; 000 00 16639 246 128 OR $80 ; add hold cntrl signal 
; 16641 211 83 OUT $53,A ; write port A 
;As an example----- > LET D$="87020430854" will set the clock for 16643 126 LD A, (HL) ; get digit from D$ 
; WED FEB 4,1987 08:54:00 16644 222 28 SBC A,28 ; string digit -28 
: 16646 230 15 AND $0F ; mask off bits 0-3 
;¥10 (YEAR 10's)=8 16648 Shia. OF OUT $57,A ; write it to PB of 8255 
;Y1 (YEAR 1's) =7 16650 120 LD A,B ; then strobe 
;M10 (MONTH 10’s)=0 16651 246 192 OR $CO ; the write signal 
;M1 (MONTH 1's) =2 16653 222-83 OUT $53,A ; high 
;D10 (DAY 10's) =O WOTE add 4 to this digit for LEAP year 16655 35 INC HL ; point to next D$ digit 
;D1 (DAY 1's) =4 16656 16 236 DJNZ, EC ; loop for next 
iW (WEEK) =3 NOTE day of the week starting with SUN=0 16658 201 RET ; return to BASIC 
;H10 (HOUR 10’s)=0 NOTE: add 0 for AM,4 for PM, or 8 for 24HR 16659 0 NOP ; used in testing 
; if digit should be a "2" and it's a 16660 41 ADD HL, HL(D) ; search table 
i 24HR clock make digit an "A" (2+8=A). 16661 13 DEC C ($) 3 (DS) 
;H1 (HOUR 1's) =8;M10 (MINUTE 10's) =5 16662 255 RST 38 ; termination byte 
;M1 (MINUTE 1's) =4 
;NOTE that seconds are set to 00 when writing the clock chip. The following routine will allow you to enter and 


then use the MC routine as a BASIC clock. Note, however, 

‘ that since BASIC is being used to access the clock, the 

: LET D$="8710593A335" <NL> update of seconds will be SLOW! You can, of course, in- 
; RAND USR 16517<NL)> clude colons and whatever other "pretty-printing" you 
; desire. I'll give.a listing for a Machine Code clock in 
; The routine will generate two different errors; an upcoming issue of TDM (when another installment of 

the DAM board will be presented...mainly software). 

\ ERR 2 The normal variable undefined error 


NX ERR E (inverted) This indicates that the D$ variable is ne eee 
re E NOT 11 digits in length. 


j 
;To set the clock for WED OCT 19, 1987 23:35:00 LEAP YEAR use: 





Lemke Software Development | 


2144 White Oak, Wichita Ks., 67207 





PRESENTS 
original programs for the TS 2069 


PIXxelu SKETCH and GRAPHICS EDITOR v2. 2] 


5 ° % % “ 
| acealieenammemeeemeninee a FEDALE Germann oe we maa (see TDM review: Sept/Oct *86 -- vol 2, no. 6) 


t t 


32 Column Graphics * Merge Screens 
64 Coiumn Graphics % 2040 Printer (all modes) 


FRESENMTS 


~t- SCREENDESIGN -+- 


Extended Color Mode Graphics * TASMAN, AERCO, A&J, Oliger 

Full Screen "WINDOW" Editing CPI compatible for most 

Multiple Fonts IBM/EPSON type printers 
% MUCH — MUCH — MORE 


ot ot ot oe 

















= th CAP H ANN 


(see TDM review: Jan/Feb *87 -- vol 3, no. 2) 


WOULD YOU LIKE TO BE ABLE TO DESIGN SCREEN DISPLAYS 
LIKE THIS WITH A MINIMUM OF EFFORT? 


COLOSSUS is a Low Resolution Graphics Designer Program. 


% 24 Rows x 1024 Columns % Insert/Delete Rows/Columns 
& View/Edit your Banner Design * Copy/Erase Segments 

% Scroll Left/Right % Multiple Fonts/Sizes 

z 


2040 Printer or Full Size Printer (needs your ZPRINT-80 code) 


WELL NOW YOU CAN!! With just a few keystrokes, you too, can 
esign and save screen displays even better than this one! 
You can even make ye own UDGs with the built in UDG 
design mode. You will have your choice of type styles and 

fonts to choose from. You can even install a scrolli 


CHECKBOOK 4 BUDGET MASTER 


Complete 800 Check Database * Tallies INCOME and EXPENSES 


14 User Defined Categories as Checks are Filed 
message with extra large letters! A great attention getter ¢ PRINTED and PLOTTED catgut ads to'Gatenory nesses” 
z 


? for ads, promotions of shows. You will be amazed at how 
siaple this ae is is to use! Many built in commands like 
change ink/paper colors, erase, redo and sore! 
We have never seen anything like it! We’ll bet you haven’t 
seen a utility like this either! 


ONLY $14. 95+82 SH. 


AVAILABLE EXCLUSIVELY FROM: 
on RMG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OR 97645 
503/655-7484 


Get these FINE programs from LEMKE SOFTWARE DEVELOPMENT only 


2040 Printer or easy Full Size Printer Driver installation. | 
$19.95 ppd. (each), $37.95 ppd. for any 2, or $55.95 for all 3. 


5S D Lemke 


Lemke Software Development 
2144 White Oak 
Wichita, Ks. 67287 





bo 
iy 


1 REM XXKKKKKKX <<===== enter 170 k's here 
5 FAST 

6 INPUT X 

10 FOR X=X TO 16662 
15. PRINT AAT "20, Ofaeet +; PERK X; 


20 INPUT D 
30 POKE X,D 


35 PRINT AT 20,10; PEEK X 
36 SCROLL 

40 NEXT X 

50 CLS 

52 SLOW 

53 PRINT "ENTER DATE, TIME” 
54 INPUT D$ 

55 RAND USR 16517 

56 PRINT AT 10,10; 

60 FOR X=16554 TO 16579 STEP 5 
70 PRINT USR X; 

80 NEXT X 


GOTO 56 





RUN the program, and when you get the "L" cursor, 
enter the starting address for the MC routine which, in 
our case, is 16514. After you enter all the bytes, you 
will get the "L" cursor. Enter the date and time in the 
format described in the MC routines, then the BASIC 
routine starting at 50 will display time. / 

That's it! As I've said in previous articles...Drce 
me a line! Let me know how you used the project. I'll be 
more than glad to assist anyone. We Sinclair hackers 
always seem to stick together. If you've always wanted 
some peripheral for your Sinclair but just can't seem to 
find one, let me know what it is. It may make a _ great 
future project/article in TDM. Don't forget, next issue 


will feature my INTERNAL 64k RAM upgrade for the TS1000. 
Watch for it! 


TS 1000/1500 PROGRAM CHAINING 


aa 





Earl Vv. 


A few "bugs" crept into the manuscript and the text 
of Part Five as published in the last issue. The "tree" 
in line 4 of the second paragraph, on the left side of 
page 40, should read "three". The "TS1000" in the first 
line of the last paragraph, also on the left side of 
page 40, should be "TS1500". The "needed to save memory" 
starting on line 13, from the bottom of the right column 
on page 40, should read "needed and to save memory". 

Having completed the homework assigned in Part 
Five, we are now ready to determine the Upper Limit of 
the Safe Area, the address of E Line, the Lower Limit 
of the Safe Area, for each module and the minimum 
address to which we can lower RAMTOP and have the entire 
Chained Program operate properly. We will start with the 
TE module. 

Turn on the computer and set RAMTOP to 17408, by 
entering the direct commands: 

FAST 

POKE 16389,68 

NEW 
Load the preliminary TE module from your homework tape 
using the direct coitinand: 

LOAD "TE" 
When the cursor appears, type in one 32 character line 
(the left hand quote symbol marks the end of the line), 
then press ENTER. Type in STOP (using the shifted A 
key), then press ENTER. When the prompt appears, press 
any key. When the diagonal LOAD lines appear, press 
BREAK. 

To determine the address of the Upper Limit of the 
Safe Area, starting at RAMTOP minus 50 (in this case 
17408-50=17358), PEEK each address downwards in memory, 
noting the decimal value returned, until you find 
nothing but zeros for at least ten addresses. The 
command to be used is: 

PRINT PEEK nnnnn 

where the "n's" are the address to be PEEKed. The 
address just before those with all the zeros should be 
17353 and should contain the decimal value 125. As_ the 
values used in the Machine Stack and the GOSUB_ stacks 
are pairs, in.this case the High Byte occupying the 
higher uneven address (because RAMTOP is set to an even 
value), the Low Byte is zero in address 17352 and _ the 
Upper Limit (UL) of the Safe Area is the address 17351 
for the TE module. 

To determine the addrss of E Line use the direct 
command: ZS 

PRINT PEEK 16404+256*PEEK 16405 
The value returned should be 16918. 


To determine the Lower Limit of the Safe Area and 
to overcome the curve that the Wicked Wizard of ROM has 


Dumnmmni nmgtomnm 


presented us with, we will use a slightly different 
"Flypaper" program than the one presented in Part Two of 
"Adventures In The RAM Jungle And Other Mysteries" (page 
12, Nov/Dec '85 issue of TDM). Instead of POKEing a 5 
into the addresses above E_ Line, we will POKE a_ series 
of numbers from E_ Line up in memory, using the Flypaper 
program (Figure No.5). After loading and operating the 
TE or other module, the top of the Calculator Stack can 
be found where the series is broken. The Lower Limit is 
the address just above this, where the value has _ not 
been changed. 


If your computer is still on, use NEW to clear the 


memory, other wise turn on the compute and reset RAMITY 
to 17408 as you did before. Type in the program c 
Figure No.5. Enter the direct commands: 

LET A=1 

GOTO 10 
When the 0/40 appears at the bottom of the display, load 
the preliminary TE module again from your homework tape 
using the command: 

LOAD "TE" 
When the prompt appears on the screen and the cursor 
appears, type in 62 characters this time before pressing 
ENTER. We use 62 characters this time to allow for the 
typist making an error by over-running the end of line 
marker (the left hand quote symbol). Type the keyword 
STOP (shifted A key) and press ENTER. When the new 
prompt appears, press any key. When the diagonal load 
lines appear on the display, press BREAK. Enter the 
direct commands: 

CLEAR 

PRINT PEEK 17172 
The value returned should be 255. Continue PEEKing the 
addresses down in memory until you locate where the 
series breaks. All going properly it should be at 
address 17039 with the value returned of 186. This 
address marks the highest address that the top of the 
Calculator Stack used during the program run. The Lower 
Limit of the Safe Area is the next higher address 17040 
with the value returned of 123. You must be careful not 
to do anything that would LIST the program during the 
determination of the Lower Limit as this would mess up 
the values and you would have to start over. 

We now have the data we need to find out the number 
of bytes in the Safe Area of the TE module (each addr 
holds one byte or eight bits). The formula for this 1 

Upper Limit-Lower Limit+l 
For the TE Module: 
17351-17040+1=312 
As there must always be 36 bytes in the Spare Area of 











the memory to avoid an out of memory error, the approx- 

imate lowest value to which we can set RAMTOP and have 

the program and the computer operate properly is: 
17408-312+36=17132 (APPROXIMATE) 

The value is approximate because when the top of the 

lculator Stack is at its maximum address, the Machine 


“_cack may extend down a minimum number of addresses 


below RAMTOP or vice versa. Because of this some pro- 
grams will operate without adding any or all of the 36 
bytes. Trial and error is the way to find out. In this 
case we do not have to add any of the 36 bytes and the 
minimum address to which RAMTOP can be set for the final 
version of the TE module is: 
17408-312=17096 

The typist can actually overrun 31 characters and press 
ENTER without the computer acting up. As it is standard 
programming procedure never to store any data in the 
address of RAMTOP, in line 180 of the final version of 
the TE module and line 140 of the final version of the 
PRT module, we use 17097. 

The value of the variable B used in both the TE and 
PRT modules is dependent uppon the amount of RAM that 
you have. As an example, let us compute the value of B 
for a ZX81 with only 1k RAM. The first nonexistent 
address is 17408. The number of characters that could be 
stored would be: 

17407-17097+1=311 
The number of 32 character lines that can be stored are: 
INT (311/32)=9 
The number of characters in nine 32 character lines are: 
9*32=288 
When we are out of space to store a complete 32 char- 
acter line, we want to stop the text input or the 
printer and in the TE module, a STOP character code 
(227) stored at: 
B=17097+288=17385 

As "repetition is the key to learning" and because 

each module presents a slightly different problem, let's 

termine the addresses of the UL, E Line, LL, and 
“amber of bytes in the Safe Area for the other two 
modules, starting with PRT. 

Clean the memory by turning off the computer. In 
order to have the printer stop after printing one blank 
32 character line, we need to POKE the address: 

17409+32=17441 
with the code for the BASIC keyword STOP (227). Also we 
want the fast mode and to set RAMTOP to 17408 prior to 
loading the preliminary PRT module from the homework 
tape. Enter the direct commands: 

FAST 

POKE 17441,227 

POKE 16389,68 

NEW 

LOAD "PRT" 
When the PRINT TEXT query appears, energize the TS2040 
printer and press the on switch. Type in Y and press 
ENTER. After one blank line is printed and the query 
appears again, type in N and press ENTER. When the 
diagonal load lines appear, press BREAK. 

From this point on proceed as before to locate the 
Upper Limit. The last value prior to nothing but zeros 
will be a 224 in address 17351 and the UL will be 17349. 

Find the address of E_Line for the PRT module by 
entering the same direct command used for the TE Module. 
The value returned should be 16859 which will be used in 
line 10 of the Flypaper program. 

To determine the Lower Limit of the Safe Area of 
the preliminary PRT module, clean the memory by entering 
NEW. Type in the program of Figure No.5, changing line 
10 to read: 

10 FOR N=16859 TO 17113 


, iter the direct command: 


LET A=1 
GOTO 10 

When 0/40 appears, enter: 
LOAD "PRT" 








Operate the program as before. After using the BREAK 
key, key, enter the direct command: 
CLEAR 

This wipes out any reserved space, variables, or strings 
stored in the VARS area, moving all the areas above it 
up to the top of the Calculator Stack, down in memory, 
so that PEEKing the addresses will not write over where 
the top of the Calculator Stack was during the program 
run. Locate where the series breaks by PEEKing the 
addresses down in memory from 17113. You should find 
this at 16911 with a zero returned. The Lower Limit 
would be address 16912 with a 54 returned. 

The number of bytes in the Safe Area are: 

UL-LL+1=17349-16912+1=438 

The approximate minimum address for RAMTOP for the 

PRT module would be: 

17408-438+36=17006 
By trial and error RAMTOP could be set at 17003 and the 
PRT module and the computer would operate properly. 

If your computer is still on with RAMTOP at 17408, 
enter NEW to clean the memory. Otherwise POKE 16389 with 
68 and use NEW. Then load the preliminary RT module from 
your homework tape. Proceeding in a similar manner as 
you did for other modules, find the address of the UL 
and E_ Line which should be 17347 and 16765 respec- 
tively. : 
The program in the RT module does not use the VARS 
area. Therefore CLEAR will not move the top of the Cal- 
culator Stack down in memory so that peeking the ad- 
dresses to find the Lower Limit would write over where 
it was during the program run. To fix this problem enter 
the Girect command: 

DIM AS$(64) 
This reserves space in the VARS area for the string A$ 
and moving the areas above it up in memory including the 
Calculator Stack. Again find the address of E Line. It 
should now be 16835. Re-record the module using GOTO 10. 

Clean the memory using NEW and type in the Flypaper 

program, changing line 10 to read: 

10 FOR N=16835 TO 17089 
Enter the direct commands: 

LET A=1 

GOTO 10 
After the 0/40 appears, enter: 

LOAD uw RT " 
Use the re-recorded RT module. From this point on pro- 
ceed in a similar fashion as you did for the other 
modules to find the Lower Limit. The series breaks at 
16870 with a zero returned. The address above is 16871 
with a 37 returned. Adjusting this address for the space 
reserved in VARS, the Lower Limit = 16871-70=16801. 

The number of bytes in the Safe Area of the pre- 
liminary RT module is: 

UL-LL+1=17347-16801+1=547 

The approximate minimum address to which RAMTOP can 
be set for the RT module is: 

17408-547+36=16897 

As the highest minimum address to which RAMTOP can 
be set for any of the modules in the chained program is 
17096, then this is the value that must be used for the 
final versions of the modules. 

To coin a phrase...explore and "master the possi- 
bilities" of your computer. With properly designed soft- 
ware and hardware add-ons, there is nothing a Big Blue, 
Apple, or AT&T can do that you cannot. 


Beginning 280 Machine Code 


LESSOn SEVEN 
By Syd Wyncocop 


Editor: Syd Wyncoop has contributed an excellent article called 
"A STUDY IN NUMBERS". Due to space limitations in this issue, we 
will run it next time. The article discusses many of the number 
systems (bases) that are used by computer programmers, such as 
Decimal, Binary, and Hexadecimal. Hopefully, this will bring in 
to focus and act as a compendium for students of our "machine 
code class", but also should be of interest to all. 


Before we begin, I need to ask again for some feedback from 
you. Especially if you are a TS1000 user. I have heard from no 
TSiQ@@W users and will concentrate the programming on the 2868 if 
you don’t speak up! The MC instructions are the same for both 
computers however, each program must be tailored to the 
operating system. This makes writing this series more difficult. 
Also, I need your ideas. What would you like to see? We are near 
done with Z8@ instructions. 

Let’s talk about the logical instructions, And, Or and Xor. 
And and Or do not give the true/false response you are familiar 
with if you have used them as Basic boolean operators. Instead, 
they and Xor operate on the individual bits of a register, or 
other 8 bit location. Also, the flags are always affected 
according to the result of these instructions. 

Chart 1@ provides the truth tables that explain how each of 
the logical instructions affects the bits being operated upon. 
While this makes the individual operations clear, it does little 
to help you understand the instruction, And F@h, when it is 
encountered. In order to understand these instructions better, 


it is neccessary to understand a little of Base 2 (binary) 
numbers. 


Hex/Bin Conversions 


Bin {Hi 
0208 
2001 
0010 
@G1i1 
01288 
@101 
@118 
@11i1 


x 
x 


NOUPAWNKSA 
jTAmonwpwon 





Truth Tables 





As we discovered in our discussion of hex numbers, the 
highest digit in any base is equal to base-1. This means that we 
have 2 digits in binary, @ and 1. The typical number 248 or FQh 
is 11112@20@b in binary. The b denotes a binary nmumber just as 
our h means hex. 

Rather than provide a full decimal to binary conversion 
chart, I have given you a hex to binary chart. This is because 
we have been working with hex numbers which are a very good 
shorthand for binary. Eight digit binary numbers are very easily 
represented by two digit hex numbers. I have provided program i 
for those of you wishing to generate your own charts. 

I think you will agree that all those 1’s and Q’s of binary 
are begging for us to make an error. That being true, why do we 
want to represent numbers in binary? The reason is because the 
logical instructions operate on individual bits and these bits 
can be easily represented as set or reset (on or off, if you 
prefer) which is 1 or @, respectively. Binary provides an easy 
way for us humans to determine how our friend CPU will act. 

Let‘s look at And. And is often used to mask off unwanted 
bits. Suppose our routine puts the result in the accumulator and 
we want to insure that the result is never greater than 7. We 
would do this with the instruction, And @7h. If A contains 52h, 
the And @7h would make A contain @2h. 


A = 01010010 = S2h 
And 00000111 = O7h 
A = 08000018 = O2h 


The result is always placed back in the A register. We have 
effectively said we only want to know about the three least 
significant bits of A, therefore we have discarded the rest. 

Or is used to set the bits we need. If we wanted to insure 
the most significant bit is set we would Or 8@h. If we wanted to 
insure the most significant bit is reset, we would And 7Fh. Can 
you see where 10000@0@ and @1111111b are more useful than 8@h 
and 7Fh with these instructions? Binary allows you to see 
exactly what is happening. 


A = 01010010 = 82h A = 01010010 = 82h 
Or 1800200088 = 80h And 01111111 = 7Fh 
A = 11010010 = D2h A = 01018018 = 82h 


- 
—— 


ss 
= 








Chart 11 


!_ Rotate and Shift 
! Rica 
Rla 
Rrca 
Rra 
Rle r 
Rlc (HL) 
Rior 
Rl (HL) 
Rre r 
Rrc (HL) 
. Rear 
Manipulation ' Rr (HL) 
byr ! Slar 
b, (HL) ' Sla (HL) 
Sra r 
Sra (HL) 
Srir 
Srl (HL) 
Rid 
Rrd 


An example of using Or would be when we want to calculate 
an address. We would calculate the offset in A and then Or. it 
with the high byte of the address to complete the calculation. 

Xor is not a fugutive from the Outer-limits! It is a 
special case that sets only those bits that differ. For 
examples 

A = 10010110 = 96h 
Xor @10111@01 = SDh 
A = 11001011 = CBh 


This is referred to as complimenting. Xor is complicated and is 
not used often but it is handy at times. 


The bit manipulation instructions are the largest single 
group of 780 instructions. They are Set, Res and Bit. They are 
easily understood as they set, reset or test the status of any 
bit in any register or address. 

Set and Res are the set and reset instructions respectively 
and they do not affect any flags. These instructions are useful 
when you need to set/reset a bit without affecting the other 
bits in that byte. You could use And and Or to accomplish the 
same task but often you will not know the status of the other 
bits. Set and Res avoid this problem. 


Bit is the test instruction. The bits are unchanged but the 
Zero flag is used to indicate the results of the test. The flag 
is set if the tested bit is zero, and reset if the bit is one. 


The rotate and shift instructions are also bit manipulation 
instructions. They are classified separately as they operate on 


the entire byte. Many of them use the Carry flag to store a 
bit. 

Rica rotates the contents of the accumulator left one bit, 
Placing the sign (most significant) bit in Carry as well as in 


bit @. The effect of this instruction is to multiply A by 2. For 
examples 


11090100@b becomes 10010@01b 


Graphically it looks like: 
SSeS S2e= > ss8e508= > sss see 
Aa ' 
+--—+ SO bem ee + ‘ 


1C 'Memmens! 76543210 !<mmee 
rt +--~----------- + 


Program 1 


10 LPrint "Dec Hex Bin" 

20 For i=@ to 255 

180 Let h#=" " 

110 Let hi=Int (1/16) 

120 Let h#(1)=Chr$ (h1+48+(7 
And hi>?)) 

13Q@ Let h2=i-h1*256 

140 Let h#(2)=Chr# (h2+48+(7 
And h2>9)) 

280 Let b#="20000000" 

210 Let a=i 

228 For n=7 to @ Step -1 

230 If (a-2*Int (a/2)) Then Let 
b$(n+1)="1" 

248 Let a=Int (a/2) 

258 Next n 

3@8 Let t=(1 And i<1@)+(1 And 
i<198)+(@ And i<10@@) 

310 LPrint Tab ts3isTab 5S;h#; Tab 
18;bs 

320 Next i 


TS10@@ users need to change the following lines: 
120 Let h#(1)=Chrs(hi+28) 
140 Let h$(2)=Chr$(h2+28) 





Rla rotates the accumulator bits left though Carry. The 
Carry flag still contains bit 7 but the prior Carry flag is now 
in bit @. Here it is graphically: 


oo aos ee ee = pee 
“a ' 
a +--+ +-------~----- ' 
S<mem! C !<emenen! 76543210 !<=nmm 
+---+ +—-------~----~----- + 


Rrca is similiar to Rlca. This time the accumulator‘s bits 
are rotated right. Bit @ is copied into Carry and bit 7. The 


effect of this instruction is to divide A by 2. This one = looks 
likes 


Se Se a me a ee oe 

' “a 

' te + ms +—---+ 

sse=>! 76543 21 O !meneunez=>! C ! 
+—----------------- + +--+ 


Rra is not surprisingly like Rla, except that we are 


rotating right. Bit @ is rotated through the Carry flag. Here it 
is: 


Soenccemes< sees, eee oe Heese eee 
' ”~ 
H tern nr rn ee + a a 
sem=ee>! 7654321 0 !eeeeeees=>! C !ane>am 


+--------—-- ~~ + +---+ 


The remaining rotate instructions will operate on any 
register (including A) or the contents of any address. Rlc r is 
graphically the same as Rica. Rl r is graphically the same as 
Rla. Rrce r is graphically the same as Rrca. Rrr is graphically 
the same as Rra. The difference between Rra and Rr A is that Rra 
affects only the Carry flag while Rr A affects all the flags. 

The shift instructions are the true arithmetic instructions 
although they are otherwise similiar to the rotate instructions. 
The first, Sla is similiar to Rlc instruction, except that the 
least significant bit becomes zero. The effect is to multiply 
the register or address contents by two. Graphically we have: 


toon + +e + +--+ 
! C !<memmme! 76543210 '<mmum! Q ! 
+--+ +----------------- + +---+ 


Sra will shift right arithmetic the bits in the specified 
register or address. This is similiar to Rre except that bit @ 
is only copied to the Carry flag. Bit 7 remains as it was. The 
effect of this is to divide signed numbers by two, leaving the 
carry set if there was a remainder (you were dividing an odd 


number). Graphically, we have: 


+----—---------- + + +--+ 
seece=! 765 43210 !=mmx>! Q ! 
! +—----------------- * +---+ 
‘ “ 


Srl, or shift right logical is the same as Sra, except that 


the most significant bit becomes zero. Graphically, this is the 
reverse of Sla: 


+--+ +----------------- + +--—+ 
! O tememmnene>! 76543210 !=m=m>! C ! 
+---+ +------------- + + +---+ 


The last two shift instructions, I have never found a use 
for. They are Rid and Rrd, which mean rotate left decimal and 
rotate right decimal, respectively. They operate on the contents 
of the memory location addressed by HL and the accumulator. 

In the case of Rld (not to be confused with Rl d) the low 
nybble of (HL) is copied into the high nybble of (HL), the high 
nybble of (HL) is copied into the low nybble of the accumulator, 
and the low nybble of the accumulator is copied into the low 
nybble of (HL). Got it? Here’s a picture: 


2m ee > ek ee ee ee ee) we a as ee )> eS 
A 7-65 4 !°3 228" (HL) !' 76S 473210! 


nee eee ee oe ee 


For example, assume A contains 7Ah and (HL) contains Zih. 
After an Rid instruction, A will contain 73h and (HL) will 
contain iA. ‘ 

Rrd behaves just as obnoxiously except, of course, that the 
rotation is * the right. Here it is: 


Saeco ee oe Dee pe 
A! 7 -6;3: 4222-2-5-0-! (HL) ft 726 8 4! S271 8! 


Boss ( noeecees (eee oe oe 


Remember, you will be limited to an eight bit answer with 
these instructions. The Carry flag will indicate an overflow and 
the accumulator, register or memory location will contain the 


difference. In other words, all arithmetic results will be 
modulo 256. 


Now, how about a practical application? Let’s develope a 
hex dump routine. We can show any byte as two hex digits once we 
know where to begin. We need the Basic interface first: 


fs) 








Fors |. 














os 5 


TS 2065 


And now the Hex 


Th 


flow al 


Bil 


ead 











=, . Sl 


fr certain 


fe ct ¢ “oT 





iT Far BKS abiue are beahg Us 
Stable afd can 


TAX 





Mex rie lH ior 
$12.89 on 
Starring the Lovely fis 

eel of Fartune clane.' 


ripe OR HONEY 





a (Progra ffi 
Employee ulthholaing & dar 


Mos a EO Se O4 


tah complete this Ree COnFLSLNG Fork Faster than t 
called gin: benonstrate Te Your Frignds ahd neighb 


=1/5 i 3 eDbi 


ark “ay prare 
be #ERGEd #ith your bookkeeping 
PROGRAMS 


ORDER , 


HERB BOWERS, 
2595 Woodshire 
Chesapeake, WA 
Fhone: 









ebypesipe POearae, 
ot Cas 





amd ‘You 
how the WEL Ax 
; the fttitire 
You Cah calculate hot Much Your Federal Incowe Tax ill be Far 
188? ahd 1938 by ing 1586 ae Hoe ¥ill the AER THE Las 
gifect wou ghd id om. basa! - a i pecaae re me gp ear 

ae 




















ohals". 7 


for Sis 


cas 
5 “5 







6O4 457- 


Hex Dump Interface 


18 Print “Dump from decimal 


address: "; 
22 Input a 
38 Print a 
48 Print 


SQ Poke base-1,Int (a/256) 
6@ Poke base-2,a-Int 


(a/256) #256 


7@ Rand Usr base 


75 Rem base=address of Hex 
Dump substitute your addresses 


for base 


82 If Inkey#="" Then Goto 82 
98 If Code Inkey$=13 Then Goto 


78 


95 Rem 13=Enter on the TS20@68 
Use 118 on the TS1000 
102 If Inkey$="Z" Then Copy 


11@ Goto 8a 


Dump routine for the TS2068. Remember to 


use your addresses in place of the xxxx. 


Store Equ HexDmp-2 


FDCB@286 HexDmp Res @, (TVFlag) 


2AKxxx 
G@E19 
7c 


22xxKxXK 


Ld HL, (Store) 
Ld C,1@h 
OutriLp Ld A,H 


Call HexPrt 

Ld A,L 

Call HexPrt 

Ld A,2@h 

Push AF 

Rst 18h 

Pop AF 

Rst 18h 

Ld B,@8h 
InnrLp Ld A, (HL) 

Call HexPrt 

Ld A,28h 

Rst 18h 

Inc HL 

Djinz,Innrlp 

Ld A,@Dh 

Rst 10h 

Dec C 

Jr nz,OutrlLp 

Ld (Store) ,HL 


sthis bit tells the Rom 
sroutine to print in the 
3mMain screen area 

sget address to begin dump 
3counter-# of lines to dump 
3get the high byte of the 
3first address in this line 
30f the dumped bytes 

399 print it 

3get low byte of address 
399 print it 

sascii space 

3save the space character 
3print the space 

sretrieve the character 
gPprint another space 
;counter-# bytes/line 
sbyte to accumulator 

390 print it 

sascii space 

sprint the space 

sadvance byte pointer 
3loop for 8 bytes 

gascii carriage return 

390 to start of next ‘line 
3count one line done and 
sloop for 16 lines 

sstore start of next line 


Cc? Done Ret sreturn to basic 

FS HexPrt Push AF ssave it 

E6FO And FQ@h smask off high nybble 

if Rra sand rotate to low nybble 

1F Rra 

iF Rra 

1F Rra 

CDxxxx Call Print 39° print digit in A 

Fai Pop AF sretrieve it 

EéQF And @Fh 3mask off low nybble 

CDxxxx Call Print $9° print digit ina 

c9 Ret sret to calling routine 

FEGA Print Cp @Ah scheck if digit is greater 
gthan 9 

3F Ccf 3if so, set carry and 

DCxxxx Call c,Offset 390 adjust for correct 
gascii character codes 

C4638 Add A,38h smake a printable char code 

ES Push HL j Save registers 

cs Push BC 

D7 Rst 10h 3Rom print routine 

Ci Pop BC srestore registers 

El Pop HL 

c9? Ret 3return to calling routine 

C407 Offset Add A,@7h sadjust digit to skip over 
sascii characters between 
37? and A 

c9 Ret 


sreturn to calling routine 


And tor you TS1000 owners (I still use mine!): 


2A7B48 HexDmp Ld HL, (Store) sget address to begin dump 

GE18 Ld C,1@h scounter—-#of lines to dump 

7c QutriLp Ld A,H sget the high byte of the 
3first address in this line 
sof the dumped bytes 

CDA94B Call HexPrt 390 print it 

7D Ld A,L 3get low byte of address 

CDA94@ Call HexPrt 390 print it 


AF Xor A ssame as Ld A,O@8h 

FS Push AF $Save the space character 

D7 Rst 18h sprint the space 

Fi Pop AF sretrieve the character 

D7 Rst 10h sprint another space 

2408 Ld B,@8h s;counter-# bytes/line 

ae: InnrLp td A, (HL) sbyte to accumulator ee 
CDA948 Call HexPrt 3990 print it ¥ 
AF Xor A 3get space character / 
D7 Rst 18h sprint the space ; 
23 Inc HL 3advance byte pointer 

1QF7 Dinz,InnrLp sloop for 8 bytes 

3SE76 Ld A,76h 3get carriage return char 

D7 Rst 18h 390 to start of next line 

@D Dec C scount one line done and 

28E2 Jr nz,OutrLp sloop for 16 lines 

227B48 Ld (Store) ,HL 3store start of next line 

c9 Done Ret sreturn to basic 

FS HexPrt Push AF 3Save byte 

E6Fo And FQ@h 3mask off high nybble and 

iF Rra srotate to low nybble 

iF Rra 

1F Rra 

iF Rra 

CDBA4@ Call Print 390 print digit ina 

Fi Pop AF sretrieve byte 

E6@F And @Fh s;mask low nybble 

CDBA4@ Call Print $99 print it 

c9 Ret sreturn to calling routine 

Ccéic Print Add A,1Ch s;make a character @ to F 

ES Push HL ;Save registers 

cs Push BC 

D7 Rst 10h 3Rom print routine 

ci Pop BC srestore registers 

Ei Pop HL 

Cc? Ret sreturn to calling routine 


I have to assume that if you are still with me, 
obtained some good study aids. Since almost all 


you have 
books on the 


subject of Z8@ MC have numerous tables in them, this is the last 
time I will give the hex codes in the MC disassemblies. I will 
instead, provide the source code. 
another lesson. See ya soon! 


What‘’s source code? That’s 





NUMBER MADNESS 


by Zack Xavier Haquer 


Here is a challenging game for those of you who are 
tired of shoot-em-ups and pac-persons. The computer 
"thinks" of a four digit number, and your job is to 
guess (or rather, deduce) the number. Each time you 
guess, the computer gives you a clue which will tell you 
how many digits are correct and in the right place (A), 
correct but in the wrong place (B), or completely wrong 
(C). Note that the order of the letters in the clue DOES 
NOT necessarily correspond with the position of the 
digits! 

You have the option of selecting five levels of 
play. At the hardest level, only your current guess is 
displayed, making it a challenge to memory as well as 
logic. 

Ten "sets" constitute a game. The average number of 
guesses it takes is your score; the lower, the better. 
(A maximum of 15 guesses are allowed.) After a game, 
your name is entered into a "Hall of Fame", which can 


then be saved to tape (along with the program and other 
variables). 


Being entirely in 2X BASIC, with no “tricks," this program can 


be easily converted to TS2068 or Spectrum. The changes are as 
follows: 


1: Remove FAST and SLOW commands. 


2: Replace referenes to CHR$ 118 to CHR$ 13 (as in the IF 
INKEY$=CHR$ 118 THEN... lines). 


3: Replace dummy FOR-NEXT loops with PAUSE (the FOR-NEXT was 
used instead of PAUSE to prevent the blink that results from 
using PAUSE with the 2X81). For example, delete lines 300 and 
305 and use 300 PAUSE 60 instead. 


4: Modify the SAVE command at 2590 as desired. For example, you 


might want to use: 
2590 SAVE “scr" SCREEN#: SAVE "guess" LINE 3000 


To load the program and screen, use LOAD "scr" CODE: LOAD 
"guess" 


St Add color, FLASH, sound (BEEP), and lower-case as desired. 











999 
9 
928 
1s 409" a — 
vg 
> a 
> 























5 
18 
15 
ps 
26 
25 
38 
58 
60 

189 
116 
120 
130 
148 
158 
166 
178 
1898 
196 
286 
218 
228 
230 
240 
256 
2608 
278 
288 
298 








MS 
MM Se 


2o2 





REM GUESS MY NUMBER 

SLOW 

DIM AS) 

DIM B15) 

BEM. .C iS) 

Din. Zz 

DIM C 
J 
K 





FOR A=9 TO 
PRINT AT 
NEXT 4 

FOR A=21 
PRINT AT 
NEXT 4 

FOR A=11 
PRINT AT 
NEXT 4 

FOR A=" TO 22 STEP 3S 
PRINT AT : 
NEXT A 

PRINT AT 
FOR A=22 
PRINT AT 
NEXT A 

PRINT AT 


RAND 








295 PRINT AT 3,5 

7" AT 5,27; INT (1i868G4RND) ;' 

;QF 15,3; INT {16GGGERNDI. "7" 

396 FOR A=1 TO is 

305 NEXT A 

-318 PRINT aT 2 
: c= the 


i PRINT AT 


S38 LET AS=INKEYS 


> INT LL OSCOeRNE 


Pate 






20,0; SELECT DIFFI 


G40 IF AS>"@" AND AS<"S" THEN G 
OTO 469 

oss IF A$=CHRS 125 THEN GOTO 56 
3606 GOTO 339 

4090 CLS 

405 LET T=VAL AS 

420 PRIN HELLO, THERE.* 

4290 PRINT AT 3,5; "WHATS YOUR NA 
HE?"; AT 29,0; "(TYPE NAME, UP TO 


8 CHARACTERS, THEN ENTER.)”™ 


430 INPUT 2$i13 
446 LET A=5 
as IF Z$(1,A} <>“ THEN GOTO 4 
460 LET A=A-1 
470 IF NOT A THEN GOTO 468 
4380 GOTO 452 
490 LET 2$(1,A+1}) = 
580 CL5 
5@5 LET L=0 
a PRINT “OK >. =) Z$02j3,7 “HERE Go 
Sas 
520 FOR A=1 TO 2o 
525 NEXT &A 
53@.CL5 
540 LET J=J+1 
S50 PRINT AT 8,28; "GAME NO. “jd 
rey LET E=INT (i8@080+RND+500¢ (L 
+J 
S70 IF &¢<=9995 THEN GOTO 66a 
S80 LET E=E-INT (5660G64RNDi 
596 GOTO 579 
600 LET A=E 
610 FOR B=4 TO 1 STEP -1 
620 GOSUB 39638 
630 NEXT 6 
635 PRINT AT 1,8; "TRY NUMBER CL 
UE" 
640 LET L=L+1 
L+2,8;" 


| PRINT AT 


_ 85@ IF L<4 AND 
21,0; "(TYPE 
“660 INPUT F 
665 IF Fc=9999 THEN GOTO 682 
670 PRINT AT L+2,8;"TOO HIGH, “ 
;25(1) 
672 FOR A@=1 TO is 
A 





J=1 THEN PRINT 4 
NUMBER, THEN ENTER 


ore 
677 
6860 
665 L+2,6:; 
ws 


690 IF L<¢4 AND 1 THEN PRINT &A 
cere rk” icy 


71i@ PRINT AT 


a 


PRINT AT 


L+2. O;L;AT L+2,15; 
“O@900";AT L+2,17-LEN STRS F; F 
715 IF E=F THEN GOTO 1290 
720 LET A=F 
GET. H=o 
LET I= 
FOR B=8 TO 5 
GOSUB Saeae 
NEXT B 
FOR B=5 TO & 
FOR C=1 TO 4 
IF AtC}) =A(B) 
GOTO &42 
LET Heh+2 
LEC =4 
NEXT © 
NEXT 8 
FOR 8=5 —CoO-sS 
LET -C=8-—<4 
IF A(C) =AIB: 
GOTO 32a 
LEP rare 
LET H=H-¥ 
HEXT 6 
LET V=I419+H42+9188 
GOSUB U 

_T 


LET U= 
THEN LEF U=is 


STEP -1 


THEN GOTO 5298 


THEN GOTO 36898 


x 


IF U=5 
LET UsL-U 

IF U<1 THEN GOTO 1686 
PRINT AT, U+te,19;" «: 
PRINT AT: L+2,19; V5 

SLOW 

IF t<¢<=14 THEN GOTO 6498 
PRINT AT 15,5; "YOU BEEverls 
pee} 

1@21 PRINT 

er 3 PRINT TAB 5;" 





THE NUMBER I5 





GOTO 1258 

GOTO 18408 

PRINT AT L+2,19; 
SLOW 

FOR A=1 TO 3 
FOR B=1 TO 5 
NEXT 65 e 


“RRAR" 


PRINT 
NEXT 4 
PRINT “ 

PRINT AT 16. ae acre th a ie 


‘$4¢70U GUE 


= ~ 
PRINT “(PRESS “"“ENTER"" TO 
CONTINUE. 3" 
1280 IF INKEY$=CHR$ 115 THEN GOT 


Oo 1506 


42908 GOTO 1259 
1380 CLS 3 
1395 IF J=10@ THEN GCTS 2000 ae 
1310 PRINT “AVERAGE= “; (STRS (Ke 
Jd} +" bot 1G) es 2 S| 
1326 GOTO 54a 
2600 CLS RS 
2Q10 PRINT AT 2,16; "END OF GANE. 
20209 PRINT 
2625 LET K=K718 ; ae 
20308 Stee TAB $;"YOUR 18-GAME = 
CORE I5 : = 
2035 IF KL her K=@ THEN PRINT 2a 
2O50 LET AS="FEEFEEEFHEEEEEEFETE 
ae 
2660 LET B$="++ 

+e" 
2O7O PRINT AT &,5; 

AT @ 5; 


PRINT 


ss = 
PRINT AT 
PRINT AT 


3 

3 
2110 FOR A=19 TO i5 
2120 PRINT AT A 
2125 NEXT A 
2130 PRINT AT 16,.5;A$;AT 17,.5;A% 
2190 LET X=1 
2200 IF Bix) =@ THEN GOTO 2585 
2205 IF K>B(X) THEN GOTO 2216 
2207 GOTO 2240 
2210 LET X=xX+1 
2229 IF X=65 THEN GOTO 24596 
2230 GOTO 2200 
2240 FOR A=5 TO X+1 STEP -i 
2250 LET BA) =BiA-13) 
2255 LET CA) =C(A-1) 
2260 LET C#$(Ai =C#LA-1) 
2265 NEXT A 





2385 LET C#(X)} =Z2$ (1) 
2306 LET B=9 a 
2387 IF CH(xX,Bs =" THEN GOTO 235 
ia 

2305 _IF. CRUX, By-=" | THEN LET Cat 
+ ae aR 


2389 “g0TO 2315 
2310 LET B=B-1 
2312 GOTO 23587 
2315 LET B(x) =K 
2316 LET Ctx) =T 
2317? PRINT 

2318 LET B=9 
2319 LET Bs=Cs(xX) ¢ TO Bi 

2320 IF BS(B)=" “ THEN GOTO 2322 
2321 GOTO 2325 

23aa LET B=6B-1 

2323. G0TO 2319 

2325 PRINT “+++CONGRATULAT IONS¢<¢ 
$°; 8S; "443" 

23308 LET W=1 

2346 GOTO 25208 

2490 LET U=8 

2580 PRINT ME 3197S = 
2505 FOR A=1 TO 5 
2518 PRINT AT 18+8,6;C 
+H ,27; BAI; AT 18+R,22; t 
2520 NEXT A 

2525 IF xX=6 THEN 
i Bais 5 $ C135 


2530 IF W=1 THEN GOTO 
2549 GOTO 3018 
25598 PASS AT 29, 

eS 4 i a8 

2559 PRINT “REWIND 

““MENTER 5 
2565 POKE 164138,6 
2567 PRINT “BYPASS - PRESS “*B"" 


tt 


ha 






2570 IF INKEYS$=CHRS 115 THEN GOT 
0 2599 


oe 
seemed 





GOTO 
SAVE 


CLEAR 


5680 CLS 
PRINT 


@ ""“ROUNDS"" 

(THE 
T NUMBER AND 
WHAT IT 15." 


S850 PRINT THE 
GUES55,I WILLGIVE 
CH WILL HELP YOU 


5060 PRINT 


5676 PRINT THE 5; 
MY NUMBER I5"., 


5860 PRINT 
5@50 PRINT 


5691 PRINT 
5893 PRINT 
PLACE {(5}'* 
5694 PRINT 
PLACE .(1,37" 
5695 waht 

: 


5180 PRINT 
5116 PRINT 
IES = SCORE 
S126 PRINT 
Si3@ PRINT ~ 


QO CONTINUE.3" 
51406 IF INKEYS$=CHRS 


0 5166 


5150 GOTO 5146 


5166 CLS 


5170 PRINT TAB 


5190 PRINT TAB 5;"¥ 
PTION OF FIVELEVELS 





eg 


5200 PRINT 
5210 PRINT “1 
L YOUR 
5220 PRINT 
5238 PRINT “ce 
R LAST FOUR 
5240 PRINT 
5250 PRINT “3S 
R LAST THREE 
5260 PRINT 
5270 PRINT “4 
R LAST THO 


IF INKEYS="B 


2578 
“SUESH" 
PRINT AT 


PRINT AT 
START | JNEW GARE." 


PORE 16418 
IF INKEYS= 
GOTO 36e8 


S285 


PRINT THE 16," 
PRINT TAB 5;" 
OFA GAHE IN 
COMPUTER) THINK 
YOU TRY 


5; “EVERY 


“A- RIGHT 


“B- RIGHT 


“C- WRONG 
“AVERAGE NUNBER 


(PRESS 


anaes OLD anus 


20,4; 
21,0; " 


THEN GOTO 


SAVE “GUESE" 
RUN 


WE WILi 


WILL 
WAIC 
OF @ 4- 


EIHE 
YOU A CLUE 
GUESS My 


Si os Se = 3 es 


DIGIT, 
CIGIT 


YOU SEE CLUES 


GUESSES." 


YOU SEE CLUES 


GUESSES.” 


PLAY 


YOu 
WHI 
NUMBER 


“FOR EXAMPLE, 


at 7531" 


“AND YOU GUESS:' 
4 THEN. THE™ 
“CLUE 


“ENTER = 
1128 THEN GOT 


wv 





aa) 
OT! 


bet bed bo 


ney 


Be, GUESS 


= 
2 8 ie 


a5 Geeks 


“ABBC 


DIGIT ,. RIGHT 
WRONG 


GF=TR 


T 





HAVE THE 0 
D 


FO 





5260 PRINT 


5290 PRINT “5S - MOST DIFFICULT. 


+ OU-SEE-CEGE FOR PRESENT GUES 
5S ONLY.” 

5380 GOTO 32a 

9000 LET C=INT (8/18; 
9010 LET A(B) =A-C#is 
9030 LET A=C 

9650 RETURN 

9106 LET Ug="cecce 
9181 RETURN 

9182 LET VUg="BCCC 
9163 RETURN 

9164 LET Ren BEC 
9185 RETUR 

9106 LET gs “BBBC" 
9107 RETURN 

9188 LET Vs$="BEBBB" 
9189 RETURN 

9110 LET VUg="ACCC" 
9111 RETURN 

Sli2 LET “VUs="ABCC” 
9113 RETURN 

9114 LET VUs="ABBC" 
9115 RETURN 

9116 LET VU$="ABBB" 
9117 RETURN 

9120 LET VUs="AACC 
S121 RETURN 

9122 LET VUg="ARABC 
91253 RETUR 

9124 LET Usg="AABB 
9125 RETURN 

9130 LET Ug="AAAC 
9131 RETUR: 

9132 LET Us="AAAB 
9133 RETURN 


Sil using ony T6K of TSTOOO RAM 
- Now cheaply double or triple 


__andunleash your computers tue powe 


oe has purchased a large lot of new 
Memotech 16K and 32K RAMs directly from England so that 
we could offer them at drastically reduced prices. 

Memotech RAMs are the highest quality and 
best-selling expansion RAMs for Timex/Sinclair computers. 
They have sleek looking black extruded-aluminum cases 
that conform to the shape of your TS1000 or ZX81. These 
16K and 32K RAMs feature feed-through connectors and 
circuitry that allows you to use them along with the 16K 
RAMs you already have, so that Hh can acheive 
respectively, 32K or 48K total system RAM capacity. 

Each RAM comes with an easy to understand 
instruction manual explaining how to use the RAM to best 
advantage, and a 15-day money-back guarantee from 
Zebra Systems. Order yours now, while the supply lasts. 









i 


























Acheive 32K with 
Memotech 16K 
+ your Timex 16K 


CAT# R416 Memotech 16K RAM ... $14.95 


CAT# R432 Memotech 32K RAM ... $24.95 
CAT#S116 Sinclair 16K RAM, TS1016 equivalent... $10.00 
Include $3.00 S&H. VISA/MC accepted. NY residents add sales tax. 


‘ZEBRA SYSTEMS, ING. } 


78-06 JAMAICA AVE., WOODHAVEN, NY 11421, (718) 296-2385 


Acheive 48K with 
Memotech 32K 
+ your Timex 16K 









or 






















949 4999494555949 4-54-5545 454545 


You’ve heard of PROFILE 2048. 
You y have even heard of PROFILE +3! 
But we are willing to bet that you have never heard of: 


PROF ILE. #35! 


That’s caer, PROFILE +5! A great new addition to the line 
of PROFILE updates. We have used all of the various 
versions of this i and can honestly say that this is 
the ULTIMATE PROFILE! 


+5 contains all of the features of PROFILE 2048 and +3 as 

well as all of the new features of TOM WOODS’ PROFILE 
CARTRIDGE! Including the ‘NOT’ and ‘OR’ search routines. 
It also lets kas print in 8@ coluans! It still has the 
‘NAME REVERSAL’ print feature and the ‘EDIT A PHRASE’ menu 
option. You can now ‘MERGE’ files, ‘DATE’ files and make 
use of the great machine code sort routine! 


All of this is available in several ways, if you already 
OWN one or more versions of PROFILE, you will be able to 


Save some money on this version. the complete program on 
cassette available for: 


ONLY $29. 955+2ph 


(User Manual available only from TOM WOODS for $10.0@) 
For more information, please call or write! 


AVAILABLE EXCLUSIVELY FROM: 


RMG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OR 97045 
903/655-7484 


9454545454545 454545 4545454505 


@ 


se vate A we OS Ok BO a a We Oe we ee 


A A A A 


ed PR OR SE GS eS Ss Ss SS SSS ee iy, 


2% 8s Macering SALE o8% 29% 29% ff 
a5? %p? %,? 9 %.9 ©, ,9 
ae was Co “eo “eo a 
@ROMSWITCH 2--Improved! (CMOS) $39.95 ; 
Corrected 152848 ROM + Spectrua ROM 
@752868 + ROMSWITCH 2 installed $189.08 
@ Spectrum RON $16.95 


@ Spectrum ULA chip special design for correct 
display on US color TV/monitor. RARE! $42.98 


@Timex 2848 Printer, new w.spacers $49.95 
@Gi ElectroCAD for Si2K,elect layout $29.95 


GL, TS2868, 151880/1508/2X81 hardware/software: 
>@lectronic parts, books/magazines, liquidation: 


send for free catalog. Free gift w. order. 
Send check MQ MC/Visa# - $3. shipping on order 
814-364-1325 (Usually answering machine) 


Sie 


G. RUSSELL ELECTRONICS 


RD 1 © Box 539 © Centre Hall, PA 16828 


et ee es to eT et ar 
























3K sc 3k NEW 
LARKEN 


DISK DRIVES 


-------——- LKDOS - EXTENDED BASIC CARTRIDGE --------- 

- Uses all standard (Token) keyboard cassette commands 

- CAT MERGE ERASE FORMAT LOAD SAVE PRINT and more 

~ Uses NO RAM space . HAS 8K ROM and 8K RAM on board 

- NMI Memory Save Feature :PUSH BUTTON memory transfer 

- Fully 2068 / Spectrum compatible / 0S-64 Compatible 

- 10 Extended Basic Commands for Graphics,Utilities and 
up to 3 scrolling Windows on the screen in proportional 
print (up to 100 characters wide) 

- Supports 2 Floppy’s and soon to released 256K RAMDISK 

- Can be used with either Larken Disk Interface 

- Available soon for RAMEX and other disk IF’s 


NEW 2068/Spectrum Disk Interface 
- Supports | or 2 - 3" 3.5” or 5.25” SS or DS drives 
- Double Density 360k (double sided) 
- Snap-shot pushbutton on board 


ZX-81 TS1000 2068 Disk Controller 

- Supports double sided 5.25" drive , 160K per disk 
- The Best DOS for the 2X-81 

- Uses no ram :2K Ldos and 2K ram on board 

~ Connects to Computer with Ribbon Cable 


Wk SK 3K 


PRICES ; (US) LKDOS EX-BAS carries #60.00 

NEW 2068 /Spec FD Interface $45.00 

Add $5.00 ZX-81 Disk Controller $99.00 
S&H 256K Raw Disk (TBA) 

2- Drive Floppy cable #8.00 


% LARKEN ELECTRONICS RR#2 NAVAN ONTARIO CANADA K4B-1H9 * 





\ 


» < 





QL Fiight Simalator 


Reviewed By Dennis Silvestri 


Another flight simulation for a Sinclair computer? 
What could this program do that the other flight simu- 
lation programs cannot do? These were questions I asked 
before receiving this program. Here are my answers. 

The usual view of the instruments and out the cock- 
pit is provided in QL FLIGHT SIMULATOR. All the usual 
flight controls are present, using either a joystick or 
the keyboard. The simulation presented is the flying, 
landing, and taking off of a small single engine air- 
craft. So far, there is not much difference between this 
and other programs like it. What makes this program 
completely different is in its graphic visual displays. 
There is actual scenery to view such as_ mountains, 
valleys, water, power lines, towers, buildings, and 
other objects. This scenery is shown in what is referred 
to as hi-res 3D "wire" (or line) graphics. This type of 
display defines only the outlines and/or contours of the 
objects they portray. There are also panoramic views out 
the cockpit. This type of view is relative to aircraft 
altitude and simulates the actual view you would see if 
you turned your head left, right, or looked behind you, 
as well as looking up or down. There are nine different 
scenic areas to choose from (referred to as "worlds"), 
which make for some interesting flight simulation. 
Weather conditions can be set in any of the worlds, 
which affects wind direction and speed, as well as cloud 
cover. The weather conditions in each of the nine worlds 
can be set separate from one another, and can be called 
up at any time should one forget what they were. Weather 
readings are also automatically displayed when crossing 
the boundary from one world to another. An interesting 
feature occurs with the aircraft on the runway. Here, 


_one can taxi around...pulling up to various objects. 


There is also a fuel depot which is the only source for 


yrefueling the aircraft. A radar view is also provided. 


This shows the aircrafts position ralative to the ground 
and any objects. This view is helpful if you are flying 
above cloud cover. 

Since the keyboard is also used to control all 





SINCLAIR QL 


FLIGHT 
SIMULATOR 





functions not related to actual flying, the user should 
expect to spend considerable time in getting familiar 
with their functions. No less than 27 keys are used. QL 
FLIGHT SIMULATOR comes with very extensive documentation 
which includes maps of the nine worlds. These maps_ show 
all the objects and their heights. The maps are very 
useful, especially when flying between worlds. However, 
they are poorly printed, and could have been made larger 
for ease in reading. This program has a built in backup 
copy feature and uses sound as well as limited color. An 
RGB monitor is advisable. Using a TV results in the 
lower lines being cut off from the screen. 

There are a number of flight simulation programs 
available for the Sinclair line (including Spectrum, 
TS2068, TS1000). The QL FLIGHT SIMULATOR should be con- 
Sidered a leader for programs of this type. As I end 
this review, I wonder. This program runs on the standard 
128k QL. The computer is expandable to 640k. Upgrading 
this program to the QL RAM limits could result in a very 
powerful program. QL FLIGHT SIMULATOR should not be 
looked at as "just a game", but as the first step one 
could take if interested in learning how to fly. 

The QL computer used to review this program was 
supplied by A+ Computer Response. QL FLIGHT SIMULATOR is 
available from most QL dealers. 


Sharp’s, Inc. 
Rt. 10, Box 459 
Mechanicsville, VA 23111 
(804) 746-1664 or 730-9697 


COMPARE OUR PRICES! 


QL Computer 

512k RAM-Miracle 

Internal 512k RAM 

Memodisk (512k & Disk I/F) 
Dual Quad-Density Disk Drives 
Modapter Plus 

Centronics I/F $ 32.95 
Task Master $ 39.95 
Front Page-Desk Top Publishing $ 29.95 


$189.00 
$148.95 
$129.95 
$269.95 
$259.95 
$ 49.95 


Adventure Writing System 
Tank Busters 


$ 32.95 
$ 24.95 


Dragon Hold $ 24.95 
Super Charge $ 69.95 
Q-Liberator $ 89.95 


Advanced User Guide 

Microdrive Cartridges (set of 4) 

Microdrive Cartridges w/o tab 
(set of 4) 


$ 27.95 
$ 8.95 
$ 6.95 


VISA & MASTERCARD ACCEPTED WITH 3% SURCHARGE. ALL PRICES INCLUDE SHIPPING. 
WRITE FOR OUR NEW 6th EDITION CATALOG. 


written by Tom Beatty in the February issue of Computer 
Shopper. Only the original program's table format and 
wind chill factor equations are the same, the rest is a 
complete re-write in QL SuperBASIC. I think the function 
I used to format the right-justified columns should be 


of 


outputs the chart to the screen (80 col. monitor) and 
"CHART" outputs to an Epson compatible, 80 col. printer. 


Wind Chill Chart 


By Gale 


The following QL program was inspired by an article 


general interest to readers. The procedure "TABLE" 


100 REMer« RX ERKARAKA KAKA RA AA ARK AAA EAT KAKA KEK AREER KERR KE 
110 REMerk RKKKK WIND CHILL CHART EEK 
126 REMerk EEKEK T. BEATTY XXKKK 
136 REMer« KEK KEKKX 
140 REMe« RAKAAAERAAE KAA AK AAAA RAKE AE AAR AAA AA AAKA KARA AAA KEEREEE 
158 REMerk HXEEK ADAPTED FOR SINCLAIR QL XRKKK 
160 REMerk HEREK BY GALE HENSLEE XKEK 
170 REMerk KEKKX AMARILLO, TX EKKE 
186 REMerk XEKK JANUARY, 1987 aKKKE 
198 REMerk EXEKARAERAAAKAAK AK AAKA KAA AAA AKA AAA AK AAK AAR AAA EAE RARE EEE 
202 REMerk MAIN PROGRAM 

218 SETLP 

228 TABLE 

238 CHART 

248 STOP 

250 DEFine PROCedure SETUP 


268 
278 
288 
298 
308 
318 
3228 
338 
3498 
358 
368 
378 
388 
398 
400 
418 
428 
438 
440 
458 


WINDOW #1, 512, 256, @, @: PAPER #1,0: INK #1,4:Q1S #1 

PRINT #1, “LOADING ARRAY — — — ”:PRINT #1 

DIM A(16, 14) :H1iS="#HHHH” 

PRINT #1, “CALCLLATING ROW: ”; 

FOR R=1 TO 16 

PRINT #1,R;” ”; 

V=2*R+2 

FOR C=0 TO 13 

T=-5*C+40 

AR, C+1) = (18. 45+ (6. 686112*SORT ())- C 447041%V—)) /22. 034 (T-S1. 49) +91. 4 
NEXT C 

NEXT R 

PRINT #1,” DONE” 

PRINT #1:PRINT #1, “NOW PRINTING CHART —- — ~“;CS #1 

END DEF ine SETLP 

DEF ine PROCedure TABLE 

Fei 

AT ©, 32:PRINT #F, “WIND CHILL CHART” 

AT 3, 9:PRINT #F, “DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW SP hes 
AT 4,9:PRINT #F, ” @) FIND WIND VELOCITY (PH DOUN LEFT COL 


UN” 


468 


AT 5,93:PRINT #F, ” (3) INTERSECT ROW AND COL FOR WIND CHILL ¢ 


IF” 


478 
482 
498 
5828 
518 
520 
538 
548 
558 
568 
5738 
588 
592 
6228 
618 


620° 


630 
6498 
650 
660 
678 
680 
690 
703 
710 
3. 
728 
7328 
7498 
758 
762 
TT? 
782 
793 
8e0 
810 
820 
838 


AT 7, @:PRINT #F, ” s 
QaDd=@0 

Obi = 5 
TErP1% = 10 
FOR K=® TO 13 
TErP%= —5*K+40 
AT 7, TAB CTEDP®) :PRINT #F, TEMPX; 

NEXT K 

api=5 

TEPP1% = 10 

FOR R=1i TO 16 

WINDS = 2*R+2 

AT 7+R, 3+ WIND% <10):PRINT #F, WINDX; 

FOR C#1 TO 14 

IF A®,O< 8 AND ARO > -1. 5 THEN GO TO 630 

TEHP* = INTAR, © +. 5):GO TO 640 

TErPX = @ 

AT 7+R, TAB CTEMP%) : PRINT #F, TEMPX; 

NEXT C 

apis=5 

TEIP1% = 10 

NEXT R 

END DEF ine TABLE 

DEF ine FuNction TABCTErP) 

O.D = ADi + 3 * CTEPP% >="10) + 4 * CCTEMP% >=0) AND CTEPPX < 10>) + 
CCTEPP% > -10) AND CTEPPX < @)) + 2 * CTEMP% <= -10) t 
QDi = OD + 2 — (CErP% < 10) AND CIETP% >= ©) + CEM <= -10 
TErMP1% = TEMPX 

RETurn OLD 

END DEF ine 

DEF ine PROCedure L 

WINDOW #1, 512, 208, 0,0:CLS #1:CLS #0 

LIST #1 

END DEF ine L 


DEF ine PROCedure CHART 

F=5 

OPEN #5, SER1 

PRINT #F, TO 32;”WIND CHILL CHART”; CHRS (10) 


846 PRINT #F, TO 9;”DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (’;CHRS( 


248) ;“F)” ‘ 
850 PRINT #F, TO 9;” @) FIND WIND VELOCITY (PH) DOUN LEFT COLUM 
NY” 


34 





Hemslewz 


WIND CHILL CHART 


DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (°F) 
(2) FIND WIND VELOCITY (MPH) DOWN LEFT COLUMN 
(3) INTERSECT ROW AND COL FOR WIND CHILL (°F) 


258 20 15 18 5 1) $10 15 


25 10 5 e -10 
13 = =3 =8 
14 =7e 27 
1° 

6 -13 

3 =t'7 

1 

8 
-3 





860 PRINT #F, TO 9;” (3) INTERSECT ROW AND COL FOR WIND CHILL (”; 
CRF (248) ;”F) ”; ORS (10) 

870 PRINT #F, ” ms 

880 OD = @ 

890 O.Di = 5 

9060 TErP1X% = 10 

918 FOR K=@ TO 13 

920 TErPx= -5*K+46 

$36 PRINT #F, TO TAB CTErP®) ;s TErPX; 

S40 NEXT K 

958 PRINT #F, CHRS (10) 

968 OLD1 = 5 

S370 TEYP1% = 16 

980 FOR R=1 TO 16 

SS@ WINDK = 2*R+2 

1008 PRINT #F, TO 3+ (WIND% <1) ;WIND%; 
1016 FOR C=1 TO 14 


1020 IF AQR,C)< @ AND ARC) > -1.5 THEN GO TO 1040 
1038 TEP% = INT(A®,C)+. 5):GO TO 1050 

1040 TEMPX = @ 

105@ PRINT #F, TO TAB CTEMPX) ; TEMPX; 

1068 NEXT C -—, 
1070 OLDi = 5 

1086 TEMP1x = 10 

1690 PRINT #F, CHRS (13) 

1108 NEXT R 

1110 FOR PLINE = 1708 

1120 PRINT #F, CHRS (13) 

113@ NEXT PLINE 

1148 CLOSE #5 

115@ END DEF ine CHART 


G@LG@LGLQGL@GLGL@GL@GLGLGLGLGLALAQLAL 


READ ANY GOOD OL BOOKS LATELY? 
HOW ABOUT A USERS GUIDE FOR ARCHIVE THAT’S COMPLETE 
AND WRITTEN IN PLAIN ENGLISH FOR A CHANGE! 


HERE IT IS! JUST FOR YOU! 


ARCHIVE MASTER 


Qur new book will smoping out shortly after the ist of 
March, 1987. We don’t think that there is anything about 
ARCHIVE that we have forgotten to cover. We may have 
missed some small detail, but we can’t find it! 


The book covers ALL COMMANDS and ALL FUNCTIONS in detail! 

We step = through each of these and then go on to show 

you how to create the ‘PERFECT FILE’. After that, we show 
you how to add NEW FIELDS to an existing file. 

The next step is to show you, IN DETAIL, the SEDIT or 
SCREEN EDIT function. Have you ever turned off your QL 
without closing a file and tried to open it again only to 
get ‘CANNOT FILE’? If so, we have included a fix for 
the corrupted file. THIS ONE ALONE IS WORTH THE PRICE OF 
THE BOOK! And if that’s not enough, we even give you the 
listings for all of our business software! 

All of this at a price of ONE PROGRAM! 

ONLY $44 . 9S+$3ph ; 

Over 200 8 1/2"x11" pages in a quality 3 ring binder. 
ANOTHER SUPERB EXECUTIVE WORKSHOP PRODUCT FOR YOUR QL! 
AVAILABLE EXCLUSIVELY FROM: 

MG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OR 97645 
503/655-7484 


QLQGLQGLGLQL@GL@QL@QGLGL@LGL@QLGLGLQL 





Trouble-shooting the QL 


I've now seen a total of six QL's: two assembled at 
the factory and four kits. I have to say that quality 
control leaves much to be desired, a situation I hope 

ill improve. This information is intended to provide 


“—rielp for new or prospective owners, to get started with 


a little less trouble than I had when a defective 
computer is received. The two defective parts I've ex- 
perienced were keyboard leads (1 of 6) and Microdrives 
(2 of 12). All were replaced under warranty. 

The Microdrives can cause you a lot of misery if 
you plug in your new QL computer and follow the in- 
structions in the User Manual. It tells you to "make at 
least one backup on a blank cartridge" before you use 
any QL program. This is good advice, EXCEPT, if one of 
your new, untested Microdrives is defective, you may 
destroy the original copy of the program. This happened 
to me with my first QL, and it took three exchanges of 
the PSION programs before I (and the dealer) realized 
that it was the Microdrives causing the problem. You 
see, Microdrive One worked fine, but Microdrive Two did 
not. A new tape would load and run fine in MDVl, so I 
would follow the manual and put a new cartridge in MDV1l 
and the original cartridge in MDV2 (following the User 
Manual) and enter LRUN MDV2 CLONE. The new cartridge 
would format and as soon as MDV2 started verifying the 
first file copied, the damage was done. The ominous 
message "At line bad or changed medium" would appear 
and copying would stop. This was hard to believe, since 
the program had just been loaded and run to make sure it 
was ok. So, try it in drive 1 again, right? Wrong! The 
tape was not readable. Ok, call the dealer and explain 
what happened...they'll say the QL must be ok because it 
loaded and ran the tape once and everything looked 
good...so send the tape back for replacement and try it 
again. Same results. 

Alright, so how do you avoid getting into this 
situation? It's really easy, you just assume that some- 


“thing will go wrong and go through the following test 


procedure before trying a tape with anything important 
on it. If the test is successful, your Microdrives are 
both in the 10 out of 12 group that are good. 

1. Reset the QL and press Fl or F2, as appropriate. 

2. Put a blank cartridge in drive l. 

3. Format it with "format mdvl_testl". 





By Gale Henmnslee 


Enter "dir mdvl_" and you should get a message 
like: testl 
220/221 sectors 


5. Write a short program and save it to mdvl. Lrun 
the program. If it works you can feel confident 
that mdvl is a good drive. 

6. Repeat the above steps 2 through 5 with imdv2. 

7. When you are sure both drives are good, then 


proceed to make backup copies of your programs. 
You will probably not have any further trouble. 
If any of the above steps fail, repeat them to 
be’ sure, starting with step 1. If you get the 
same result, the drive is probably defective. 
Call your dealer. (If you have a spare and are 
building a kit, replace the drive and test it. 
Chances are that the new drive will be ok and 
everything will work.) 

Keyboard leads are simple to troubleshoot. The 
first thing you should do after turning on the computer 
is press each printable key and look for the echo in the 
control area (screen 0). Test the capslock and _ shift 
keys and the cursor keys (this checks CTRL). Pressing 
enter should get you some kind of error message unless 
you have typed a valid command. If all keys work so far, 
it's unlikely that there is a bad keyboard lead. If any 
keys fail to work, it's probably a bad lead, but call 
your dealer for instructions. A lead that's improperly 
inserted, or broken near the socket can be fixed easily 
in a few minutes but don't void your warranty by opening 
the case (kit owners excepted). A broken lead is usually 
difficult to spot because the ribbon cables can have 
hairline cracks that are virtually invisible. If there 
is a noticeable kink in the ribbon, you should suspect 
such a crack. You can confirm it with an ohmmeter. A 
lead broken near the socket can be trimmed off above the 
bad place and reinserted into the socket. Be careful 
here, use both hands to hold the ribbon about 1/4 inch 
above the end and push it into the socket straight 
above, using gentle but firm pressure. It usually helps 
to cock the cable to one side to get it started. Be 
patient here and it will go in. Be careful not to kink 
the cable. 

I hope the above suggestions will help some new 
owners to get started using their QL's with less hassle. 





Qe Q“uiliYvWord Processor Tips 


Part III 


by 


Mike de Sosa 


You 


may not be aware of it as yet, but 
Time Designs’ advertisers will soon be 
offering new hardware and software which 
should, once again, blow the mind of QL 
Quill users. Think about using your 
favorite--or least: favorite-- word processor 
program with the following accessories: 
1> A dual disk drive interface with an 


additional 512K RAM; a full CARE ELECTRONICS 
/QJUMP Toolkit II and the super-efficient, 
lightning fast QfLash RAMdisk driver and 
Toolkit and other utilities in EPROM; a 
parallel printer interface; and an optional 
MIDI interface and an unusually efficient 
mouse. 


2) A multi-tasking program which permits 


instant switching between up to 9 machine 
executable programs (including the four QL 
software programs, each with reserved data 


~, 
= 


5 


space) and SuperBASIC without loss of data, 
an on-screen calculator which will printout 
the results in Quill and the other programs, 
and a new and unmatched files management 
progran. 

3) A revamped keydefine 
offers double-keystroke 
(41 user-definable 
holding up to 2048 
Cabout 340 words] or the equivalent in 
commands) and several utilities such as 
printing of the date and a CAPS LOCK audible 
Signal in the QL software programs: produce 
an entire letter with a few keystrokes. 

The items described which you will soon 
see advertised in Time Designs (and which 
will be fully discussed in my forthcoming 
book on the Sinclair QL system (Taking the 


program which 
program operation 
function keys, each 

characters of text 


Quantum Leap! The Last Word on the Sinclair 
QL, to be published by Time Designs in 
April) are, in order: 

1> One of several available versions of 
the Sandy SuperQ@Board, "the most sophis- 
ticated peripheral for the QL,” available 
soon with Supermouse from Sandy <‘UK) PCP 
Ltd. (Cthe producers of the Futura 68000 PC] 
through QUANTUM COMPUTING (an authorized 
Us QL dealer), Box 1280, Dover, NJ 07801 
(Tel. €201] 328-8846), price TBA, probably 
under $500--let’s get those prices down, 
dealers! The other part of this system is a 
plug-in replacement EPROM for the 
SuperQBoard by QfLash (the QfLash RAMdisk 
Driver/Toolkit is also available in six 
other configurations to meet your needs). 
Write or call QfLash, Firma Uwe Fisher, Post 
Box 102121, D-2000 Hamburg 1, West Germany 
(Tel. 040-7650461) for prices. Tip: While 
you’re at it, order the very excellent 
QfLash Utilities software--RAMDOCTOR alone 
is worth the price. And, while we’re 
talking about QfLash products, their latest 
is another unique bit of hardware: the 
Q@fLash EPROM * 12 fits into the QL expansion 





port and allows up to three EPROMs to be 
used simultaneously, without switching--the 
Psion QL software programs may be used all 
at one time, even on a 128K RAM QL! 

2> The multi-tasking program is Task- 
master, availablle from Sector Software, 39 


Wray Crescent, Ulnes Walton, Leyland, Lanca- 
shire, U.K. (Tel. 0772 454328), for #10, 
including Airmail postage. This was termed 
"the Rolls-Royce of such software” by a 
British reviewer. 

3) The key-define program is the "new and 
updated” Keydefine, available from many dis- 
tributors, including Sector Software, for 
about #10 plus postage. This suite of 
programs, useful in SuperBASIC and assembly 
language programming as well as in all the 
QL software programs and in any computer 
application, may be the single most useful 
QL software utility yet produced; its uses 
are==to use an apt cliche--limited only by 
the imagination. 


USING QL QUILL WITH THE NEW WONDER WEAPONS 

But what do all of these high tech 
bells and whistles mean to the QL Quill 
user? Let’.e; face. it. Margaret Mitchell 
could have written Gone With the Wind on the 
T/S 2068 using Tasword II™- Are they just 


interesting gadgets which we would use 
infrequently? That is all up to you. What 
this new hardware and software does is 


permit you to realize 
of the QL, that -is) 
or more programs. 
Uncle Clive once said that the stockQL 
had all of the memory and mass data storage 
that most PC users would ever need. But many 
early QL users soon found that the QL 
software programs-~-especially QL Quill and 
QL Archive--did not operate well on the 
available RAM, and increased RAM was found 
to truly enhance the operation of these 
programs. Then came the early disk drives. 
Many--though I was not one--experienced 
great difficulty with the QL Microdrives. 
(I. still believe that for most applications 
the expanded QL with RAMdisk and only the QL 
Microdrives for mass data storage is quite 


the original promise 
the multitasking of two 





satisfactory. ) 

The new, full-featured, 
with increased RAM, additional ROM... utili- 
ties, parallel interfaces, and--in the case 


of the SuperQ@Board--even more advanced ROM 
utilities and a "'mouse” interface greatly 


increase the capabilities and flexibility of 
QL Quill and other programs. A single disk 


disk drives 


drive may have the storagage capacity of 
more than six Microdrives: all four QL 
software programs and many dozens of 
datafiles of all types could be put on-line 
for rapid loading. A second disk drive, 
especially with an expanded QL with RAMdisk 
software, gives you almost all of the 


quick-reaction and data storage capabilities 
once found only on a minicomputer. 

Automatic and efficient QfLash RAMdisk 
software (there is no need to format or 
specify the size of a RAMdisk which enlarges 
or shrinks in capacity as data is added or 


deleted) provides eight more data/program 
banks, to and from which data can be 
transferred almost instantaneously. Its 
accompanying Q@fLash Toolkit which, among a 
great many other things, lets you load a 


ful) -Microdrive into a RAMNdisk in —7-14 
seconds and selectively save RAMdisk files 
to Microdrive (that is, automatically "save" 
only those programs which have been altered 
since the last "backup” operation). The 
same MDVLOAD command that loads a Microdrive 
so rapidly into RAMdisk may load corrupted 
Microdrive data that cannot be loaded in any 
other way. This in conjunction with another 
QfLash utility, RAMDOCTOR_bas, might permit 
you to recover corrupted data salvageable in 
no other way. Another QfLash Toolkit command 
permits the rapid and automatic comparison 
of program or data files, bit by bit, and 
the correction or alteration of any 
undesired or corrupting segments, 

There are numerous switching programs on 


the market now, but Taskmaster is--right 
now, at least--the best of the lot. 
Taskmaster lets you run all four QL software 
programs as if they were on different 
machines! While typing a report in QL 
Quill, you may switch to QL Archive or 
Abacus to check a needed bit of data, then, 


while printing a long document--perhaps from 
a spooler, switch to QL Easel or SuperBASIC 
to perform other operations. This is the 
way one works with a more fully integrated 
suite of software programs or on a 
minicomputer. 
The 41 
quill key, 
KEYDEFINE, representing 


characters of text or commands, 
for many purposes: to order a simple or 
complex command sequence with fewer key- 
strokes; to insert blocks of text into QL 
Quill documents with only a double 
keystroke; and to insert research data such 
as a direct quotation (‘taken down using 
quill_key itself) into a formal document. 
If a great deal of data must be on tap, 
several quill_key programs may be used to 
hold all of it, but only one quill_key 
program may run at any one time. 

I believe that you would agree that all / 
of the new "wonder weapons” described have 
many legitimate uses with QL Quill and other 
prograns. But there is one more essential 
ingredient necessary to use them all 


definable 
Quill 


user 
the Ol; 
each 


keys in 
version of 
up to 2048 


may be used 








together: a comprehensive "boot" progran. I When executed, QL QUILL attempts to 
am still working on this aspect of the reserve nearly all of the available RAM for 
problem but promise to include one in a itself--it needs 60K or more data space for 
future article and in my book, effective operation. If you want to run 
other programs with QL Quill loaded in RAM, 
you must reserve the space. Insert one or 
more rogram lines like the following in your 
we complete this series of articles QL Quill boot” program for each 32K of RAM 
on word processing with QL Quill, I wonder you wish to reserve outside of the program 
what else out of an immense pile of notes on dummy$=FILL$(" ", 32000) 

the subject should be included. Here goes. Insert CLEAR on the program line following 

If you use QL Microdrives for data EXEC _W MDV1_ Quill in the "boot" progran. 

storage, you will find it quicker and more “Finally, did you know that QL Quill 
trouble free to perform your file operations command sequences operate much faster with 
outside of QL Quill in SuperBASIC mode, the control area removed (by keying F2). The 
especially if you employ RAMdisks and have Hyphenate command takes 7-8 seconds less 


the Toolkit II "wildcard" (WCOPY, WDEL, time to function without the control area. 
WDIR, and RENAME) or QfLash Toolkit 


(MDVLOAD, SBACKUP, and FBACKUP) commands 
available. «If you're fortunate enough to 
have TASKMASTER, its FILES utility is 
excellent for this.) 


MORE QL QUILL/WORD PROCESSOR TIPS 


NEXT TIME: QL ABACUS/SPREADSHEET TIPS and 
more exotic new equipment. 


20000 PRINT "Hit 3 to stop, I far ICE, or any other to run JOS” 
20010 ink$=INKEY$C(-1) 
20020 IF ink$=="s”"” THEN STOF 


20030 IF ink$=="i" THEN ICE 
20040 WHEN ERRor : IF ERNUM=-19 THEN CONTINUE: END WHEN 
20050: ce; CSIZE. 2, 1: PRINT “ JOS ACTIVE ae” 








20060 PRINT "@1 986 by JOE WEWMAN” 

20070 CSIZE 0O,O:PRINT "Enter year or ENTER to quit’:CSIZE 3,1!:INFUT “year Cyy) ” 
»years;IF CODEC yeardtoe>O THOM year@yeard: INPUT “month”, month: INPUT “day” ,day!: IN 
PUT “hour”, Ari INPUT "Min. ”’  miniyear="19"&year; SDATE year ,month,day,hr,min,o 
20080 CSIZE 0,O0:BEEFP 0,1,255,1300,1 


20090 driveg="flpl_” 

20100 PAUSE SO'BEEPSPRINT “hit » ice or bdasic” 

20110 ink#$=INKEY$(—1) 

20120 IF ink$=="i" THEN ICE:ELSE cc: STOP 

20130 DEFine PROCeédure cci:CLS#0:CLS#2:CLS:END DEFine cc 
20140 DEFine FPROCedure 1:LIST:END DEFine 1 


gy 
20150 DEFine PROCedure ld (file) Correction for JOS 
20160 call=files 
20170 file_nameg=driveg&icall$ 
20180 MERGE file names 
201950 END DEFine ld 
20200 DEFine FROCedure default ¢driver$) 
20210 drivet=drivers 
220 END DEFineé default 
20230 DEFine FPROCedure LRUN ¢files> 
20240 call$=files 
20245 NEW 
20250 file_name$=driveg&call$: MERGE file names 
ZOZEO RUN 
20270 END DEFine LRUN 
20280 DEFine PROCedure llist 
20290 OPEN #100,ser 
20300 Cc:PRINT "READY FRINTER Chit any key?” (FAUSE 





By Toe Newman 





20310 ce 

20320 LIST #100 After trying to run my JOS program which was 
Sain eee resented in the Jan/Feb '87 issue of TDM (when you 
20340 DEFine FROCedure cat P » Y 
20350 DIR drives tried to use the LD, LRUN, or DS commands), the program 
20360 END DEFine cat most likely stopped with a mysterious error report--"not 
20370 DEFine PROCedure 5s (filet) implemented". Th ber is 19, which h s to 
20380 Call$=fileS: SAVE driveg&cails 1} base Ss = Tees ee = — cart 
20390 END DEFine s be listed on page 19 of the Concepts section of the QL 
gosee a Bi PROCedure Iprint (printers) Users Guide, but there is no reference to what it means. 
ote eeitasiee one iy ae te ee aa hs 

meee: ENS Geiicna #100, printers: CLOSE #100 Apparently the MERGE and MRUN commands cannot be called 
20430 DEFine PROCedure d (files) from inside a procedure. 


20440 DELETE driveg&files 


: The problem is that I left one line out of the 
20450 END DEFine a 


20460 DEFine FPROCedure ds (files) ESCING we phe par vs eas Ppa au 7 ee 
20470 = call$=files venience caused by mistake. The new listing I have in- 
20480 DELETE drivesafiles cluded not only has the "not implemented" bug fix, but a 
nae Be A Se aE Bas NEW command as well (which I stated in the last article 
all. ee 

20510 DEFine PROCedure screen (x) would not work). It works now. 


20520 LEYTES drivege&x$, 131072 

20530 END DEFine screen 

20540 DEFine FPROCedure commands 

20550 cc: PRINT "AVAILABLE COMMANDS FOR Jos” 

20560 PRINT "--~-----+---~--—-—~-~~-~~---__ = 

20570 RESTORE 20550:FOR LOOPER=1 TO 14:READ COM$:FRINT COM#:NEXT LOOFER 
20580 DATA. "LD" ,"S", "0", "DS" ,"SCREEN” , "CAT" ,"LPRINT”, “DEFAULT” 


veces ‘ bi ; "SIREN” A "NEW" : cRag , welt ; 
29590 END DEFine commands 

20600 DEFine PROCedure siren!BEEF 0.1 
20610 DEFine FPROCedure NEW 
20620 DLINE TO 19999 
20630 ce 

20640 END DEFine NEW 


»1,1300,150,1:END DEFine siren 





oF 





curry 












computer 


See you at the Computer Fest in 
Indianapolis—-Call for Show Specials. 


QOL SOFTWARE GL HARDWARE 


Graphi@e $47.75 OL Computer $199.75 
Cartridge Ooctor $223.95 Monachrame Cable #14.95 
2ku) $24.93 Talker $4649.95 
West $24.75 Cumana Disk IYF $147.95 
Chess $34.95 SLl2K Memory Loy «2 
QL Art Ve Pee Modapnter se 
QDump =. $t3.79 

Tax-lea@L $15;,75 

GepeT ] 7. Ss QML ACCESSORIES 
Hyperdrive 217.93 

agers = $34.75 MDY Case“1ie $2.58 
Key Define $17<635 MD Case“28 $16.95 
QCale ‘i773 MD Case“4 $5.75 
Squadrans Pees eo MinicWac $19.95 
3D Slime ee =, ML Dust Cover ge i Se 
Roi ndcaws $16.75 QL Print Bst Cyr 16.95 
Bounder $15.93 

BJ in 3D Land S17.70 OL BOOKS 

Assemb. Wrekbnich Sar 73S 

Techni @e S67%u.9S Service Manual S19 ers 
Concept 30D Por. Ill. SuperBasic $11.75 
Wanderer $34.95 Ady Programming $i2.73 
Mail Merge $24.95 Word FPracessing $12.95 
Presidents $12.23 Intro SuperBasic $12.95 
Mortville Manar $34.75 5.6. Handbook $16.75 
Peintre $34.75 Using Graphics $12.95 
Nuclean $27 493 Frafiting Fram $12.95 
Qthella $24.75 MC Programming $12.95 
Screen. Dump $13.79 Making Most of @ $12.95 
Dragqanhald $24.75 Adv. Users Guide $27.95 
Last Pharaoh $249.95 Guantum Theory $11.7. 
Blacklands Si Sues Games Master Si 2075 
Tage: Ll 2cMDV) ~- $6? 95S Advent. Handbook SP VFS 
QLterm 3 See oa OL Computing $9.95 
QCade $29 23 QL SuperBasic $11.95 
Boat 125k $it.75 

Graphic Toolkit $27 75 fAdd .75 sh per book 
ICEcicle Sere 2 Linless ordering s/w too.) 
Swapper $27.32 

i:i Dump $ti.?S # We are mow Stacking 
Front Page $37.73 PARTS...Give us a Call 

> All S/W shipped Free. Orders over $54 shipped 

UPS ond Day Air Free ¢Cont. U.S. only. 

> Write far a Free Catalag of GL Software & Hardware 

> SHIPPING INFO: OL=#9; Mano Cable=$15 other Hardware=$2 

. Accessories=F1 P~/~ 


P.O. Box 5607 e Glendale, Arizona 85312-5607 @ 1-602-978-2902 e Telex (via WUI): 6501267701 
OFFICE: 2412 West Greenway e Suite B-10 e Phoenix, Arizona 





SPECTRUM SOFTWARE 


Star Glider 
Xevious 
Lightforce 

Gift Of The Gods 
Dian 

Jersey Quest 
Khotoni Wilf 
Knightlore 
Zombie 

Strontium Deg 
3-D Strike Attac 
Rebel Star Raide 
The Rats 

Green Berets 
Cauldron 

Make A Chip 
Glass 

1, of the Mask 
Robin/Sherwd 
2axxon 

Starion 

Night Gunner 
Beach Head 

Way of Exp Fist 
Astro Clone 
Fred 

Road Toad 

Hobbit 

Snowman 

Ant Attack 
Con¢uzion 
Chequered Flag 
30 Tank Dual 

The Artist 
Mined Out 
Sherlock Holmes 
Spectext 
Centi-Bug 

Traxx 

Sabrewul¢ 
Dynamite Dan 
Terrormo] ines 
Lords of Midnigh 
Great Space Race 


$24.95 
$15.75 
$16.95 
39,95 
$14.95 
$12.95 
$9.95 
$15.95 
$14.95 
$5.08 
$12.93 
$5.95 
$14.95 
$14.95 
$14,995 
$3.93 
$995 
$16.95 
$14,995 
$12.95 
$5.88 
$12.95 
$15.95 
$15.95 
$14.95 
$9.95 
$12.95 
$19.95 
$9.95 
$5.88 
$7.95 
$9.95 
$5.88 
$24.95 
$5.88 
$19.95 
$9.95 
$9.95 
$9.95 
$1495 
$14.95 
$14.95 
$18.95 
$5.08 


SPECTRUM S.W cont 


Alien Highway 
Sam. Fox Poker 
Stainiess Steel 
4.06, 

Spin Dizzy 
Football Mgr 
Spitfire 48 
Dambusters 
Delta Wing 

i Man & Orcid 
Chiller 
Skyranger 
Action Reflex 
Psi Chess 

Xarg 

Bomb Jack 
Rescue/Fractalus 
Hi jack 
Speeding J/S 
Mandragere 

D.T, SuperTest 
Toadrunner 

Kung Fu Master 
Cauldron 2 

Jack the Nipper 
1942 

Paperboy 

Heavy / Magick 
Bogait 

Biggles 

Wrid Ser, Bsktb] 
Ghosts & Gcblins 
Bobby Bearing 
Dandy 

Theatre Europe 
Aftershock 

Dan Dare 
Deactivators 
Trivial Pursuit 
T.P. Young Plyrs 
Hardball] 
Firelord 

Galyan 

Prodigy 


Li] 


pra | Hi ARLEN pom bates) Geen peace.” nets 
onnuonon on 


+e tt teh 

~O "oO oO CO +O CST MIO OT Oe OS 
ee) 

an ot 


“wa -O “Oo * 
nanan on ; 


44> 


“I-47 “OO “ONO UO UNO 
on 


$12, 
$14 
318, 


245 
FiGe 


Boa 
— 
— 
wy So) SOD 
on 


$16.95 
$17.95 
$17.95 
$24.95 
$14.95 
$16.95 
$14.95 
$16.99 
$14.95 
$15.95 
$18.95 
$16.95 
$15.95 
$18.95 
$14.95 
$14.95 
$14.95 
$14.95 
$17.95 
$16.95 
$17.95 
$15.95 
$22.95 
$22.99 
$15.95 
$19.95 
$14.95 
$14.95 





a pt Go / 
SPECTRUM S/W cont 


Raid Over Moscow $15.95 


Jawz 35,68 
Dictator $5.88 
In¢iltrator $17.95 
They Scld A Mil] $18.95 
Fourth Pretocol $19.95 
Tau Ceti $17.95 
Fijte Path 737 $5.88 
Frog Run $3.08 
Rambo $14.95 
Wham $18.95 
Gauntlet $15.95 
White Lightning $22.95 
Elite $29.95 
Red Arrows $14.95 
Hypabal | $17.95 
Frankie/Hollywoo $19.95 
Tommah awk $18.95 
Pub Games $17.95 
Sacred Armour/An $15.95 
Xeno $15.95 
Gal. Abductors $5.08 
Commande $14.95 
Riddlers Den 412.92 
Skyfox $16.95 
Twister $14.95 
Omnifale $24.95 


TIMEX 1888 SOFTWARE 
{See >> below) 


Meteorites 34,89 
Night Gunner $4.88 
TI9? Keyboard $18.95 
Alien Invasion $488 
Fin Mor & Rec Ke 3 $4.08 
Stock Mkt Calc $4.88 
Space Commando $4.88 
Stock Market Cal $4,868 
Chess $4.08 
The Puzzler $4.88 
Ram Runner $4.83 
Big Flap Attack 4,88 
Tarot $4,808 


¥ Quantities may be limited on some items...State Znd Choices, 
>> 1880 Software GNLY: 2 for $4; 3 for $8; 4 for $18...a11 Sold ‘AS IS’. 


P.O. Box 5607 e Glendale, Arizona 85312-5607 e 1-602-978-2902 


TIMEX 1880 SOFTWARE 


{see >> below) 
Multiple Choice 
Forecast/Graph 
2048 Paper/3 Pak 
2848 Printer 

TS Destroyer 
Matrix Planner 
Missle Launcher 
Textwriter 1888 
Invent. Control} 
Algebra | 
Organizer 

Fort. dorjac 
Munchees 
Croaka-Crawla 
Supermaze 
Pioneer Trail 
Mix Gm Bag | 
Super Math 

Hm Asset Mor 
Hangman 

2K Games Pak 
Shark Treasure 
Adventure Pak 
The Fast One 
Inventory Contro 
Labyrinth 

Pilot 

Graphic Golf 
Crossword 
Anagrams 

Red Alert 

The Gambler 
Pinball 
Backgammon 
Kasino Kraps 
Strategy Footbal 
Frogger 

Heating Sys.Anal 
Checkbook 

Real Estate Anal 
College Cost Ana 
Coupon Manager 
Keyboard Calc 


$4,868 
$4.08 
$4.99 


$49.93 


$4,868 
$4.88 
$4,289 


$11.99 


$4.88 
$4.08 
$4.08 
$4.08 
$4.88 
$4.88 
$4.86 
$4.98 
$4.08 
$4.80 
$4.88 
$4.88 
$4.80 
$4.88 
$4.88 
$4.08 
$4.08 
$4.88 
$4.08 
$4.08 
$4.88 
$4.88 
$4.88 
$4.08 
$4.98 
$4.88 
$4.08 
$4.08 
$4.88 
$4.08 
$4.88 
$4.88 
$4.88 
$4.88 
$4.88 


Much More-Write for List 


e Telex (via WUI): 6501267701 






















OHLY- 
$34.95 PPL! 


a 


BESKIOP PUBLISHIRG!! 
ROY FOR THE 20691! 


VITH PIXEL PRIRT GG , — ~ 
Wtreveseasntinseqsauscrarerannn f(t Version 1.01 nov in! Here is a } 
PROCRAN SPECIFICATIORS: 





Ree AD PROGULED OFT te eee 
A GL with FRERT PREE! eee = 5 ae on 1 cartridge! 
ee =_———= You con now load in your 
i fs i - <a sun character sets! Even 
from Rucleen or OL Vorid! 
Yeu caa nou add text GVE2 
existing text graphics, 
without uiping then cut! 
Toagle betueen character 
sets while inpatting text! 


+ FULL SCREEN EBITING 

$ PRECISION LAYGUTS 

+ URDERLIKE FUNCTION 

+ VARIABLE SIZE CHARACTERS HEICRT 70 
TIRES HORMAL, WIDTH 18 32 TIMES HORMEL 

+ VARIETY GF FGRTS- STANDARD, BOLD, "el-| 
ERN, ITALICS, CHANCERY, O8 LOGD J FONT] 

4 LOAB/PRIKT CRAPHICS FROM GTHER PROCS. 

+ SUPPORTS- 1S 2040 PRIKTEE G2 GAY IBNy a ee 
EPSGH COMPATIBLE FOR FULL SIZE AKD THE’ es ee 
TASMAN (8 & £) EPI, 821 CPI, BERCS CPE. = abt: peeeige Ee Bhwdebhchay 
AKO GLICER CP! Be Seareeer _— ——- Re 


Pixel Friant yas created by Stan Lenke of Pixel Skeic 
& Graphics Ediior Fane...s8 Goa knew it is qood! 
Pixel Print creates Text and leads graphics for ney 


Wind 


















gisa hes many pouerfal Func ions. ..Like pixel shift 
for precision epee Pizei Print has @ wide seiec 


tien of Fonts & sizes! Prints up te tue celumas uid 

on an $.3" x U1" paper or a@ siagie column an the 15 

2058 or a double eidih celenm en a Full-size printe 

=tg x = F = 

aSi3 a = eis, xF 
GELY $19.95 For cease top 
aie Preken Zin TEH3HLS 
isn lie ice 




























































































x= 2 Z oO = = 
192 x 32 COLOR REZ 
y 
Al COLOR TG OLD &E 
EXIE KOED Pai TkI 706  fiboy gu ttt Sui Te HUSTLE 
fibgve stoien From SL BORLB megq., fiug. ‘$5, Fron a progran by “ALAR PRIOR... 
% Create PURELY CHLOR image vith a res- & Screen uas then loaded ints FRORT Pace PacE and printed with the GL PRIKTER. Kice! 
lution of 172x32! := Titi THAL PROCEAN! 
¥ OR create purely color image with a HE 
res. of 192x64 (no Flash or bright) SLUT TERR INAL PROCES Mt 
i fh ESA a q2 Ti eT. a 3 ret 
+ ORABD HICH RESOLUTIONSCRLOL TO EXIST: FOR THE 2068 & SPECTEUN!! 
TRE 1922250 RES. BLAZE & QHITE iNGEES! : z = ee te Urracnl 
# The GHLY pregran te ailew EASY use and Pilea CHETUSGEE an BAREREED, Ributs 
access to the FELL EXTERDER COLOR Mane HO EXTRA SOPTUARE or RERDPARE ReEcucu: 
fdd color tc Tech-Brau or ¥a-30 images =e ay Za REEAS 
etc, . ye MEME aden or use cn R02 Poard and 
Cones canplete with 24 page manual # See Dae ee 
exanpies and how ia use ERTERBES C81 gi e SuppaRls TaUER Tggll 
NODE in YOUR programs! EXTENDED PATE ersisal softuare for the 2068 shich requires 
has over 25 unique cansands tee! ; sports ang 2668 
2 $15 G5 i * rogran Fite ERSILY 
Gn l u Se? aes ste pnat for Tasuerd! 
—i7) 363i COTS for USTSR menus, a for Files! Blse 
SIHELALE ou iPHTUES! “GS! SELL istaps ai ¥e . SPECTERN-84 can 
iv , etc. FREE support and EXTRA FEATURE menus ore 
2663 SPECLELS: S, TIME-=<K>=-CHAREE BBS, 
DTGNAHAUK SUPER HELICOPTER SiNGialisn HE FY: Spectrum version (2068 with enaletor), or 2063 
OHLY $15.95 POST PRIS TILL APRIL U1! re erchangeable! Please arder carefully! 
DNRCHIBRE CORE THTG2-33 LESSERS. 2 TAPES = 
GELY $17.95 FEST PAID TILL PEEL if! = 
>>> RES METAL CSSES RLERSERZIVES!! dee 
aa CORPACT, QTIRSETIVE RETAL CASE 4% -- 
RERB/ERITE LEB, THIS BRIVE LOSES LIEE une TEV chi zs mm: 
A NIKI HARD GISk GEIVE...BUILT 18 LAST ~ at ar . aa P 
Hi ntti Liv £7743 ARESABYTAES 35 5: = 
P24 Panel i aK DEPRRINERT TDR-4 
PLEASE AUN 36,50 6 eg. Th SE HW «UOIPBEEY GT) OBah 
5 FREE MICRUAFERS, BE t £3 8. ¥LRGE! $1.,820 
= x x ¥FARET = i re 
5 ae a ELIZABETH, Rd 67292 











106 REMark CRATER for QL, Gale Henslee, 1987 
116 MODE 4:PAPER #2, 0:BORDER #2,0,@:CLS #2:PAPER #1, 0:BORDER #1,0,0:GS #1 
:WINDOW #1, 410, 160, 46,6:CLS #1 


120 INK #1, 4:LINE 0,90 TO 100, 0:LINE 0,6 TO G6, 10@:CURSOR 28@,148:PRINT #1, ” 
X%”: CURSOR @,0:PRINT #1, “Y”: INK #1, 4 

138 q=-4 

140 FOR a=23 TO -16 STEP -1.6 


150 IF &5 :q=q-1.7 

1606 ELSE q=qti:END IF 

176 FOR b=q TO 15 STEP .3 

188 - z=COS (GE-2* (a*atb*b) ) 

190 h=80-a*. 9-b-z 

203 x=49-250% (ax. 4+b*. 9) “*n) Bis Gale. meri 2 coe 
210 y=4S+256% (ax. 3-b*. 14+2z*. 2 /) 

220 IF x>206 OR x<@ THEN NEXT b 

238 POINT #1, x,y 


240 END FOR b 

250 END FR a 

266 CLOSE #2:CLOSE #1 

276 CLS #@:PRINT #0, “Press any Key when ready to exit ” 

280 PAUSE 

290 REMerk test for monitor or TV moce. 

300 TV_VALUE=PEEK (163899) 

310 IF TV_VALUE=2:G0 TO 380 

320 REMark reset monitor mode screens 

330 OPEN #2, scr:WINDOW #2, 258, 200, 6, @: PAPER #2, 3: INK #2,6:BORDER #2, 2, 0,7: 
CAS #2 

340 OPEN #1, scr: WINDOW #1, 258, 200, 254, @:PAPER #1, 6: INK #1, 3:BORDER #1, 2, 9, 
7:Q.8S #1 

350 WINDOW #0, 512, 57, 8, 1SG:PAPER #0, 0: INK#0,5:CLS #0 

362 STOP 

376 REMerk reset TV mode screens 

380 OPEN #2, scr:WINDOW #2, 420, 160, 46, @:PAPER #2, 3: INK #2,6:BORDER #2, 2,0,7 
:AS #2 

398 OPEN #1, scr:WINDOW #1, 420, 160, 46, @:PAPER #1, 6: INK #1, 3:BORDER #1, 2, 0,7 
:QAS #1 

400 WINDOW #0, 420, 32, 46, 160:PAPER #0, @: INK#0, 5:CLS #0 

410 STOP 






















ad mr? | = rer 

the #nd ALlD¥EST T§ ER 

= £23 

LAER! SURE HGFE Fz =F i i 

BY OQ“SUER BERTH. ..CHELE GT I8#L 
MENHTIGH THIS AER BH CEI R z 


Se 


E 
; 
z Eo: 
ES BREE PROG TH HE FRET 









































: i. €¢% RET BGTR] ‘CRTHS « 
FOL SPECITAL- $199 POST Pal! FUTURE UIs ON?1? 
2CHECK BHAT THAT FRHOLURES: ‘HHET Hee: 
&> O@L Ure FPETBGH PEBELRMS:: iam Masai SF bit chip 2 
k> & MICRGDREIVE CARTEIRCES | Caneradtht £2iG% 3 
*>} FREE @£ BEELD MAGHZEIHE! ls Mz Clock i Sot ase 
* > OL USER GUIDE, OUR OU (128E BOM, exchangeable 
° 3 EB FREE SE 25 5 ('Gi2E BAM ¢<up te & MEG? 
2 THSTRUCTIGHS , TY LHELE ‘Mulii-Mede videe, vith 
eerucee fac ce eee 5 (PALLET MAPPING option, 
i 3 a ~EBiLrF &2 SHEEP? os land £5525 in 
ALSO IHCLUBED FREE: COUPON HORTA £20 OFF @ 512K BR PACE, BEALER MIDI in-out ears 
SGAY UARANTEE, @KB FREE UTILT ane HG fg ‘Meuse & parallel perts 
SOPSee TGnAY! CALL OF WRITE . SES, ‘Hetuerk ports 
5 (2 BE222 ports vith 
= (imiependant boud rate 
: iFuii bus connector 
: [2 Internal ROM/RAM bas connectors 
= i2 External g@Mper connectors 
= i2 Internal R@Mper cennectors 
= i‘g’ channel STERIG sound 
\ /‘URRTE TY SALES iBatte 
325 BEST JERSEY $1., #28 
ELIZABETH, HJ a72 *PATIBLE 0 
TEL: 291-527-853 lil FOSEET REC RLUE BEST! 
I 


WMJ DATA SYSTEMS 


**Serving the Timex/Sinclair community since 1983 ** 


e Free shipping on all prepaid orders! 

¢ Shipment within 24 hours on most of our orders! 

e Your personal check is gladly accepted with no delay! 
¢ C.0.D. phone orders accepted! (Shipping charges added) 


TS1000 
ACZ GENERAL LEDGER 


TS1000 


SUPERTAPE-45 PROGRAMS TS1000 


TEXTWRITER 1000-32 col. 
SPEECH SYNTHESIZER 
STOCK PLOT 


TS1000 
TS1000 
TS1000 


$19.95 
18.95 
12.95 
16.95 
14.00 


BOOKS AND ACCESSORIES 
KRAFT SYSTEM JOYSTICKSTS2068 $ 9.95 


HACKER’S HANDBOOK ~~ ALL 9.95 
BASICS AND BEYOND TS2068 7.00 
C10 CASSETTES 25 for 21.00 
C20 CASSETTES 25 for 23.00 
TS2068 
ACZ GENERAL LEDGER _—_TS2068 $19.95 
THE DEALER’S DEN TS2068 19.95 
MACHINE CODE TUTOR  1S2068 18.50 
TOMAHAWK TS2068 16.95 
NIGHT GUNNER TS2068 16.95 
FIGHTER PILOT TS2068 16.95 
CRITICAL MASS TS2068 15.95 
SABOTEUR TS2068 15.95 
BASIC TOOLKIT TS2068 13.95 
MSCRIPT (specify conf.) | TS2068 24.95 
DIAMOND MIKE TS2068 16.95 
COLONIZE THE UNIVERSE TS2068 16.95 
STOCK PLOT TS2068 16.00 
All QUICKSILVA Software 7S2068 CALL 


WMJ DATA SYSTEMS—TD 


4 Butterfly Drive 
Hauppauge, NY 11788 


(516) 543-5252 (2 p.m. - 5 p.m. Best) 


FREE Apple, Atari, Commodore, IBM...Catalog 
FREE Timex/Sinclair Catalog - Write or Give us a CALL! 











a 


RESOURCES FOR YOUR SINCLAIR 





FROM TIME DESIGNS MAGAZINE COMPANY 


GREAT BOOKS FOR YOUR SINCLAIR 
OFFICIAL 2068 TECHNICAL MANUAL...........$25.00 


CONTROL THINGS with your 
Timex/SINClair DY R.L. SWATTS......ssssssescssessessees $5.00 


ZX81: Programming for Real Applications 
ROE RE FOIIIY,, .cxcccecieissnicdakctichesivemsmuatiidiaasiocseds 


Includes 12 Software Programs 
on a Cassette Tape 


Build a Microcomputer - Controlled 
Robot by B.C. Taylor 





BOTH 
*“Control 
Things”’ 
and 
6¢é ZX8 ] 99 
Package 
For Only 


$10.00 





TIME DESIGNS MAGAZINE 


Still 
Only 
$15 Year 


Six Issues 







os EVADE 


; ~e By 


SEE THIS 
NEW BOOK 


AT THE FEST! 


YOU NEED 


“TAKING THE 
QUANTUM LEAP” 


By Mike de Sosa 


The Ultimate Resource For 
Your Sinclair QL 
AVAILABLE SOON! 


Published Exclusively By TIME DESIGNS 
Write or Call for Information 





TIME DESIGNS MAGAZINE 
BACK ISSUES 
$3.00 EACH 


Nov/Dec 85 VOL.2 
Jan/Feb 86 
March/April 86 
May/June 86 
July/August 86 
Sept/Oct 86 

Nov/Dec 86 VOL.3 


Volume One Issues are no 
longer available individually 
(See “BEST OF TDM”). 


9 


Subscription - One Year 


Specify Which: 


ontrol Things With Your 
Timex Sinclair 


TIME DESIGNS MAGAZINE 


THE BEST OF TIME DESIGNS | 


VOLUME ONE 





COMPUTERS 
TIMEX 


Volume 1 
$10.00 


$15 


TIME DESIGNS BACK ISSUES 


$3.00 each 


THE BEST OF TDM Vol. 1 $10 

TS 2068 Technical Manual $25 
$5 

ZX81: Programming for Real 

Applications (includes tape) $6 

SPECIAL PACKAGE DEAL: 

Both “Control Things” and ZX81” $10 


Build a Microcomputer 
Controlled Robot $17 
Taking The Quantum Leap 

Write or Call 


WE PAY THE POSTAGE 
ON ALL ORDERS! 





TOTAL 


FOR MAGAZINE SUBSCRIPTION (please circle one below): 


NEW SUBSCRIPTION 


SHIP TO: 


; NAM 


ADDRESS 


ST UY UR § ike og Re ees ae 


ZIP 


PHONE 


PLEASE PRINT NEATLY. 


CREDIT CARD 
(Circle One) 
MASTERCARD / VISA 


Acct. Number 
Exp. Date 
Signature 


Note: 4% charge added to all Credit Card Orders. 


THIS I5 A RENEWAL 


THIS IS A GIFT 


PAYMENT 
Check or M/O. 


VISA and 
MASTERCARD 
ACCEPTED 


Perl 
24 hour ORDER LINE 
(503) 824-2658 


For Books, Subscriptions 





TIME DESIGNS MAGAZINE CO. 


29722 Hult Rd., Colton, OR 97017 


a EE EE Ee —— 


The Best of TIME DESIGNS 





the 


CLASSIFIED 


FREE ADS FOR SUBSCRIBERS 


One TASMAN TS2068 CENTRONICS I.F. 
with cable & driver SW for parallel 
printers (original cost $89.95) for 
$55.00 ppd. One like-new copy of 
500-page GUIDE TO T/S COMPUTERS by 
Morse, Adamson, Anrep, Hancock for 
$9.00 ppd.--an excellent BASIC 
text-book. R.D. Hartung, 2416 N. 
County Line Rd., Huntertown, IN 
46748. 


FOR SALE: TS2068 (new), still in 

the original box. Also ZxX81 and 
TS1000 with Rampacks, power supplies 
and manuals. Dick Taylor, 309 

Holly Circle, Tiverton, RI 02878. 
(401) 624-2035. 


FOR SALE: QL computer, printer, 
various books, spare power supplies, 
and more. Call for prices and 
details. (603) 352-9836. 


SINCUS NEWS-$8/yr=6 issues. TS2068 
oriented user group newsletter. 
Mail check to SINCUS, 1229 Rhodes 
Rd., Johnson City, NY 13790; a 
non-profit amateur users-oriented 
group. 






















KKXX Satisfaction 
Stratford Ave, 


KKK A complete Administrative package: 


KX Use with ALL Parallel Interfaces, Printers. 
for use with OS-64 Cart (64 Col Screen). 

HEX Disk Versions for 
Guarantee. 
Panama City, 
Cassette or Disk Drive, 


WANTED: A legal copy of MICRO- 
PROLOG for the Spectrum, complete 
with original docs. Willing to pay 
retail price. Also wish to contact 
others working with it. Pete Fischer, 
POB 2002, Tempe, AZ 85281. 


FOR SALE: TS2068, power supply, 
2050 modem, interface, assorted 
software/cartridges, $175; Olevetti 
PR2300 dot matrix printer, orig. 
$250, only $125. Contact: Paul 
Maxwell, 8023 Park Lane, Bethesda, 
MD 20814 or phone (202) 225-8115. 


WANTED: ZX99, HOT-Z, BYTE-BACK, 

or other add-ons and utilities for 
the TS1000. Also want Syncware 
News back issues. Wanna swap soft- 
ware? Send me your list. Dan 
Elliott, Rt 1 Box 117, Cabool,. MO 
65689. 


WANTED: SINCLAIR DIGITAL FM RADIO 
WRISTWATCH in good condition. Also 
want working and good condition 
48K ZX Spectrum (with rubber keys). 
Send reply to: Tim Woods, c/o TDM, 
29722 Hult Rd., Colton, OR 97017. 


Do you have some equipment or a program that you would like to sell? Looking for something hard to find? Place an 
ad in THE CLASSIFIEDS! Subscribers can place one free personal ad in each issue. Ad size is 32 Col. wide (like 2040 
paper) and maximum of six lines. For additional lines - $3 each. NON-SUBSCRIBERS and DEALERS: $4 a line. 
DEADLINE FOR ALL CLASSIFIED ADS: Two weeks before publication date. Mail your ad to: 

TIME DESIGNS MAGAZINE, The Classifieds Dept., 29722 Hult Rd., Colton, Oregon 97017. 


SE OK OK OK OK 6SMART TEXT TS—-LV2osesS KKK KK 


TIMEX 2068 "DESKTOP PUBLISHER" 
Software. $19.95 + 1.25 for post. <™ 
and handling. Charles Stelding, 

1415 S. Baxter, Tyler, TX 75701. 


WANTED: TS2068 Owner's Manual. 
John Sandgren, PO Box 539, Cavalier, 
ND 58220. 


MONTHLY PLANNER Pgm for TS1000 
and 1500. Ergonomic software keeps 
track of Events/Dates--Fun to use, 
micro drive compat! Only $ll. 

M. Felerski, 2110 Parnell Ave., 
Ft. Wayne, IN 46805. 


SOFTWARE FOR THE TS2068. Send 
SASE for free catalog & price 
list to: E. Ray Rash, 2424 S.w. 
78th St., Okla. City, OK 73159. 


WANTED: BOOKS AND MAGAZINES for 
TS2068. Send list with prices to: 
Arthur V. Murray, 99 Waverly Ave., 
Apt. 9-C, Patchogue, NY 11772. 


WANTED: TS2068 COMPUTER, new or 
used, but complete and in good 

condition. Call or write: Tony 

Willing, P.O. Box 199, Vashon, WA 

98070. Phone-(206) 567-4118 eves. 

or (206) 463-3682 weekdays. 


i] 
FOR SALE: OVER 30 SPECTRUM and | 
TS2068 programs for as low as $8 7 
each (U.S.) incl. p&h. Some titles: 
Ghostbusters, Commando. Send SASE 

to: Alvin Albrecht, Box 2513, 

Medley, AB, Canada TOA 2M0. 








FL 32404, 
Inquiries welcome. 


aa 


Word processor, Data base 


Second program included 


Aerco FO and Oliger 


$39.95 Check or MH/O, Gulf Micro, 
Specify 


manager, Mail List, Full text editor, Automatic printer, Automatic 
formatter. Perfect letters or manuscripts in multiple copies. Mail List 
for personal form letters. Repeat print 5 page reports. Desk top 
publishing. Friendly, Menu Driven, no command keys to learn, Crash Proof. 


Velez. 
1317 ss 
type interface, for 





om 











Sinclair Users: You know without a doubt 
what the power of Sinclair Superiority is or 
‘you wouldn’t have these pages in front of you!!! 


You know how Sinclair Computing just leaves ali of those other ‘‘Status Quo Sheep’’ 
PC’s, Cloneys, etc. in the DUST! 


The QL takes this Sinclair Superiority Tradition right up to it’s highest form using 
68000 architecture! The QDOS & SuperBasic Environment constitute the Greatest 
Computer Achievement of the 20th Century!! Like all of the prior Timex implementa- 
tions, you have to use the computer to appreciate the beauty all locked up inside of the 
keyboard! 








Dedicated Usership: 
\_ you are one of the users who is still hugging the prior superior computing models of 


Z.X-81 and 2068, don’t you think that now is the TIME to get yourself one of these 
ORIGINAL Sinclair QL Designs? It won’t be long now before other updated, enhanced 
U.S. QL models go into production. This will most likely cost from 50% to 100% more 
than the original QL because of the expenses involved in implementing such things into 
production. We have been selling the QL for well below retail. Don’t wait until future 
models reduce the current original version to a mere ‘‘Collector’s Item’’. 


Longevity For Once: 

The Sinclair QL Environment will NEVER be abandoned like the Timex versions. There 
is too much power contained in the design, and enough other companies are involved in 
compatibles and high level software! 


Special To All Time Designs Readers: 
Buy Your QL Now For $175.00! ! =? 5m 


A Flat Price for TD Readers with TS 1000, 1500, or 2068. Finish your collection! Have all 
of the original Sinclair Research Laboratories family of miniaturized computer marvels! 


oP I] e 201 328 8846 Technical Info & Assistance - - 
va ge Our Phones are Manned 24 Hours a Day 
‘Line BBS: 328-2919 Lot Purchases Available. We Direct Distribute. 


Quantum Computing, Box 1280, Dover, NJ 07801 


ee ee 





* 
~ > 
3 


~ 


ie d 
et . = E 4 
Ne FOR 1 7" 
: ‘ F j 
@¥ » + 
x = x > = 
MULTI-TASKING ON THE. TS 10002 * | 
a as : 
mW! ~ 
BELIEVE TM! f ¢ . » does not slow down your computer. SLOW mode programs can 
E WEYMIY Se thies to delivér what everyone ise says is “ims = actually have speed increases up to 400%! Registered users will 
’ possible.” What’s the hottest feature in computers today? MULTI- - receive FREE periodic application update Bneeis. 
TASKING! Until now, most people thought that you had to > buy an : We feel confident that NOVA 1000 will redefine the standards for 
expensive 68000 machine for multitasking. Please allow Us'toin- * TS 1000 programming. Consider this offer. If you can develop im- 
; troduce NOVA 1000, the software that delivers MULTI- TASKING to aginative programming applications utilizing NOVA 1000, we will 
eS the TS 1000. No gimmicks, no tricks. A full multi-tasking: environ- + © provide our proven marketing expertise. We will handle advertis- ° 
... ment for the TS 1000 at a very affordable prite. Our developers 2 ing, distribution, and customer service PLUS pay you the most 
eS have outdone themselves on this one. Please read an. es - competitive rates in the industry. All you have to-do is create and 
; 4 NOVA 1000 comes complete with these powerful built-in ae we'll take it from there. This offer is restricted to registered users. 
An honest-to-goodness switchable real-time clock that runs con- : ea 
current with your programs ON THE SCREEN. A switchable ™ ~ NOVA 1000 for the TS 1000 only $ 20.00 
automatic line tracer to aliow you to follow the operation of your 2 ~~ 
BASIC programs. Switchable auto-repeat on all keys, just. : 
thing for creating long REM statements. There’s more. a » TRACER TS2068 
Each copy of NOVA 1000 comes complete with 3 completé ver-" The perfect de-bugging tool for BASIC programs. This program 
sions. Version 10 contains the complete NOVA 1000 program in. é allows you to actually see each line of your BASIC program as it is 
statement 0 REM to allow you to incorporate its*features in ne executed. This program prints not only the line number in use, | but. _ 
existing programs or programs of your own design. Version the commands as well. It uses only the bottom of the screen for 
automatically locates itself to the 8 to 16K region for Hunter display rather than interrupting the screen display. De- -bugging 
- Board or 64K applications. Version 30 auenatlcaty lowers RAM- has never been easier. 
ai TOP for 16K configurations. .% 3. 
Consider these possible applications” of NOVA 1000. A TRACER FOR THE TS 2068 only $ 15.00 
background auto-dialer for BBS applications would allow your ~ a 


~ computer to be used for other purposes while waiting for access. ~ 

~The real-time display could be used to keep track of BBS time SOUNDESIGN TS2068 
3 _ “usage, great for pay boards or long distance calls. Multiple M/C 
~~ -sograms can now be run simultaneously. The real-time clock can 
__~ be used as a timer to activate or de-activate several programs at 
once! BASIC ané MIC programs can be run together. Package M/C 
“programs as memory resident BATCH files. Create printer buffers 
~for W/P applications. Transfer data between two or more on-line 
programs. Control multiple real-time I/O events for powerful low- 
cost robotics. Monitor the actual running of BASIC programs 

rather than just watching the results. There’s still more. 


The best sound development program we’ve seen for the TS2068. 
This program allows you to manipulate the sound chip of the TS 
2068 in ways never before imagined. The sound effects, syn- 
thesis, and music this program can. create have to be heard to be 
believed. Along with built-in sound routines, this software allows 
you to develop and mix your own as well. Once you have created 
the sound you want, all you have to dois press a key and you geta 
print-out of the line of BASIC required for you to implement that 
sound in your favorite program. This program is not only a power- 








NOVA 1000 is very user-friendly and well-documented in laymen’s. ful utility for any software library, it is also just plain fun. 

language. You would expect a program with these features to be 

memory intensive, NOVA 1000 uses only 512 bytes! NOVA 1000 SOUNDESIGN for the TS 2068 only $ 15.00 

SPECIAL OFFER!!!! = % . ‘ 
. and pay only $64.95 


SHIPPING INSTRUCTIONS: Please enclose $2.00 shipping and handling with your order. 


WEYMILCORPORATION 


Box 5904 7 4 
Bellingham, WA 98227-5904 é : s ; 


Save $ 5.00 when you order the combination of THRUST, RIGTER, JOYSTICK INTERFACE, and KRUNCHER 1000 > 4 
|